你好,我在 javascript 中有这两个对象
var john = { firstname: 'John', lastname: 'Smith' }
var jane = { firstname: 'Jane' }
这样做:
jane.__proto__ = john;
我可以访问 Jane 的属性以及 john 的属性
If __proto__
例如,IE8 不支持,相当于这样写:
jane.__proto__ = john;
Thanks!
IE 中没有等效或标准的机制。 (这__proto__ https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/protoFirefox 中的属性是非标准按原样扩展未指定在 ECMAScript 标准中。)
[[prototype]] 对象可以only通过设置来指定prototype
充当构造函数的函数对象的属性before构建一个新对象。然而,[[原型]]可以是mutated later.
不管怎样,这里有一个从现有对象指定 [[prototype]] 的小例子。请注意,必须完成 [[prototype]] 赋值before新对象已创建。 ECMAScript第5版介绍对象.创建 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create可以执行以下操作and浅克隆一个对象。
function create (proto) {
function f () {}
f.prototype = proto
return new f
}
var joe = create({})
var jane = create(joe)
joe.name = "joe" // modifies object used as jane's [[prototype]]
jane.constructor.prototype === joe // true
jane.__proto__ === joe // true -- in Firefox, but not IE
jane.name // "joe" -- through [[prototype]]
jane.constructor.prototype = {} // does NOT re-assign jane's [[prototype]]
jane.name // "joe" -- see above
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)