这里我们不会详细介绍原型,要想了解更多信息参考:js原先详解
有时候在声明对象字面量的时候设定这个对象的 [[Prototype]] 是有用的。下面的用法在很多 JavaScript 引擎中已经作为非标准扩展有一段时间了,而在 ES6 中这已经标准化了:
var o1 = {
// ..
};
var o2 = {
__proto__: o1,
// ..
};
o2 通过普通的对象字面量声明,但是它也 [[Prototype]] 连接到了 o1。这里的 __proto__属性名也可以是字符串 "__proto__",但是注意它不能是计算属性名结果!!
注:ES6新增语法,详情请参考:https://blog.youkuaiyun.com/qq_43059674/article/details/87595265
要为已经存在的对象设定 [[Prototype]],可以使用 ES6 工具 Object.setPrototypeOf(..):
var o1 = {
// ..
};
var o2 = {
// ..
};
Object.setPrototypeOf( o2, o1 );
o2的原先指向o1