美文网首页
对象的__proto__属性

对象的__proto__属性

作者: 嗨黄先生 | 来源:发表于2017-11-01 22:45 被阅读0次

标识符命名规则

.区分大小写,,Name和name是两个不同的变量
.标示符可以以下划线,美元$或者字母开头,但是不能是数字,
.标识符可以由下划线
,美元符$,字母,数字组成

神秘对象的访问

构造函数的prototype属性

function Person(){}

//通过构造函数的原型属性prototype可以直接访问原型

Person.prototype;
function Person(){}

var p = new Person();

//以前不能直接通过p来访问神秘对象

实例对象的proto属性

proto属性最早是火狐浏览器引入的,用以通过实例对象来访问原型,这个属性在早期是非标准的属性有了proto属性,就可以通过构造函数创建出来的对象直接访问神秘对象

function Person(){}

var p = new Person();

//实例对象的__proto__属性可以方便的访问到原型对象

p.__proto__;


//既然使用构造函数的`prototype`和实例对象的`__proto__`属性
//都可以访问原型对象
//就有如下结论
p.__proto__ === Person.prototype;

proto属性的用途

可以用来访问原型
在实际开发中除非有特殊的需求,不要轻易的使用实例对象的proto属性去修改原型的成员,

在调试过程中,可以轻易的查看原型的成员
早期如何通过实例对象访问原型?

可以使用实例对象访问构造函数属性constuctor

var p = new Person();
p.constructor.prototype;

给实例继承自原型的属性赋值需要注意的问题

function Person(){};
Person.prototype.name = "周华健";
var o1 = new Person();
var o2 = new Person();
o1.name = "李宗盛"; //这里修改的不是原型对象的name属性,而是给o1自己新增了一个name属性,进行了赋值


//我们可以对比一下o1和o2的name值

console.log(o1.name , o2.name);

相关文章

网友评论

      本文标题:对象的__proto__属性

      本文链接:https://www.haomeiwen.com/subject/ckenpxtx.html