JS之原型对象

1.__proto__

每个对象都有一个__proto__属性,指向该对象的原型对象

<script>
        var person = function(name,city){
            this.name = name;
            this.city =city;
        }
        person.prototype.showName = function(){
            return this.name;
        }
        var p = new person(‘pmx‘,‘shanghai‘);
        console.log(p.__proto__ == person.prototype);
</script>

2.isPrototypeOf(obj)用来判断当前对象是否是obj的原型对象

<script>
      var person = function(name,city){
            this.name = name;
            this.city =city;
        }
        person.prototype.showName = function(){
            return this.name;
        }
        var p = new person(‘pmx‘,‘shanghai‘);
        console.log(person.prototype.isPrototypeOf(p));
</script>

3.getPrototypeOf(obj)得到obj的原型对象

<script>
      var person = function(name,city){
            this.name = name;
            this.city =city;
        }
        person.prototype.showName = function(){
            return this.name;
        }
        var p = new person(‘pmx‘,‘shanghai‘);
        console.log(Object.getPrototypeOf(p) == person.prototype);
</script>
时间: 2024-08-07 04:32:50

JS之原型对象的相关文章

JS 简单原型对象

<!-- ————————JS简单原型 ———————— --> function Person(){}; Person.prototype={ //constructor:Person,//必须加上 表示原型对象的构造函数 name:"Z3", age:"20", job:"人才", say:function(){ alert("简单原型"); } }; //ECMN5 给原型对象重新设置构造函数definePr

JS面向对象-原型对象,实例对象,构造函数的关系

JS中每创建一个函数,该函数就会自动拥有一个prototype属性,为什么那??  因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对象都拥有一个prototype属性,而在js中函数也是对象,所以js中每个函数也都有一个prototype属性. 例如:function Person(){...} 和function Dog(){...} 而每一个prototype属性又会获得一个constructor属性 该constructo

js重写原型对象

首先看两段很相似的代码: 1. function Person(){} Person.prototype = { constructor:Person, name:"Nic", age:"29", sayName:function(){ alert(this.name) } }; var friend1 = new Person(); //实例在这里 friend1.sayName(); 2. function Person(){} var friend2 = ne

js(三) 原型对象与原型链

原型对象 每个javascript对象都有一个原型对象 原型链 由于原型对象本身也是对象,根据上边的定义,它也有自己的原型,而它自己的原型对象又可以有自己的原型,这样就组成了一条链,这个就是原型链,JavaScritp引擎在访问对象的属性时,如果在对象本身中没有找到,则会去原型链中查找,如果找到,直接返回值,如果整个链都遍历且没有找到属性,则返回undefined.原型链一般实现为一个链表,这样就可以按照一定的顺序来查找. 一.指定对象字面量的原型 示例1 思想方法:把一些对象共享的方法.属性,

怎么理解js的原型对象

1. 所有对象都有原型对象. 2.  原型对象,就是其它语言中的类中的静态属性和静态方法,总是是静态-static就对了.原理是: 内存中只有一份. 内存中的图解: 先写个构造器: function Person(name, age) {     this.name = name;     this.age = age; } var A = new Person('A', 18); var B = new Person('B', 28); var C = new Person('C', 38);

浅析JS原型对象&amp;实例对象&amp;构造函数(转)

浅析原型对象,实例对象,构造函数的关系 原文地址:JS面向对象-原型对象,实例对象,构造函数的关系(http://blog.csdn.net/u014205965/article/details/45798861) 因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对象都拥有一个prototype属性,而在js中函数也是对象,所以js中每个函数也都有一个prototype属性. 例如:function Person(){...} 和

js原型对象与Java类的区别

在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而原型对象本身就是一个方法体,它可以直接运行.二者在构造对象的过程中,js可以扮演两种角色,一个可以将原型对象当方法来使用,才接触js时,都是以这种形式来使用,即万物皆方法体,像c;另一个是模仿面向对象的特性,为原型对象定义属性,运用构造器时,将构造器构造的对象的指针指通过原型链指向原型对象的属性,从而实现面

[js高手之路]原型对象(prototype)与原型链相关属性与方法详解

一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手之路]一步步图解javascript的原型(prototype)对象,原型链 已经分享过了. function CreateObj(uName) {             this.userName = uName;             this.showUserName = function

js原型对象

原型对象是什么? 在js中,每一个创建的的函数都会有一个prototype属性,这个属性指向一个对象,这个对象就是原型对象 function lla(){} console.log(lla.prototype); chrome浏览器下的结果: 原型对象能干啥? 首先,当你用new 调用了一个函数,就会创建一个对象实例然后返回这个对象 可以看到a是一个名叫lla的对象,有一个__prototype__的属性(后面介绍),这里可以认为这个对象是空的:为什么是空的呢?因为构造函数里面是空的: 如何才能