var mark = new Mark();
mark["type"] = mark["type"];
给人的直觉是这个语句肯定没有意义,实际上如果开始的时候 mark没有type属性但是mark的 prototype中有这个属性,就像下面这样,
function P(){
this.type = "type";
}
function Mark(){
this.name = "name";
}
Mark.prototype = new P();
var mark = new Mark();
mark["type"] = mark["type"];
并且把prototype中的type属性的值赋给它,
执行完这句之后你会发现mark中也有了type属性,
在这之前只有它的prototype中有type属性
本文深入探讨JavaScript中原型链的概念,并解释了当对象的属性在构造函数的原型中存在时,如何通过`mark[type] = mark[type]`这样的语句在对象上创建该属性。通过实例演示,清晰展示了属性赋值的过程。
1万+

被折叠的 条评论
为什么被折叠?



