在这个例子中,如何获得父亲的财产
How to get the property of father in this example?
var father = {
b: 3,
c: 4
};
var child = Object.create(father);
child.a = 1;
child.b = 2;
child.b 现在是 2,Chrome devtools 显示 child 具有继承的 b 属性。我如何访问它,为什么它没有被覆盖?
javascript 中的对象有一个指向其他名为 __proto__
的对象的链接。您可以使用以下命令获取父对象的属性:
var father = {
b: 3,
c: 4
};
var child = Object.create(father);
child.a = 1;
child.b = 2;
console.log(child);//prints Object { a: 1, b: 2 }
console.log(child.__proto__);//prints Object { b: 3, c: 4 }
您可以将此机密属性用于学习目的,但它不是 在真实脚本中使用它是个好主意,因为它不存在于 所有浏览器(特别是Internet Explorer(,因此您的脚本不会 便携式。
请注意,
__proto__
与原型不同,因为__proto__
是实例(对象(的属性,而 原型是用于创建的构造函数的属性 那些对象。[ 1 ]
我强烈建议使用 Object.getPrototypeOf((:
var father = {
b: 3,
c: 4
};
var child = Object.create(father);
child.a = 1;
child.b = 2;
console.log(child);//prints Object { a: 1, b: 2 }
console.log(Object.getPrototypeOf(child));//prints Object { b: 3, c: 4 }
参考
面向对象的 JavaScript - 第二版 [ 1 ]
这是一种方法,但你需要阅读更多关于阴影和继承以及原型链的信息。
Object.getPrototypeOf(child).b
相关文章:
- 如何在下面的ES6循环中获得前面的文本
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 我可以获得相对于被点击元素的确切点击位置吗
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- 如何在javascript中获得与特定数字相等的随机数
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 我怎样才能获得承诺的价值
- 检查元素是如何获得焦点的
- javascript处理一个对象数组以获得一个新的对象数组
- 如何更改<选择>使用angularJS从控制器获得的值
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 有没有一种方法可以获得three.js的最小/lite版本
- 如何获得随机灯光颜色
- JavaScript,JQuery.需要帮助才能获得'name'从我的JSON中删除
- 在这个例子中,如何获得父亲的财产