考虑下面的javascript代码
var a = Object.create(null);
a.foo = 1;
var b = Object.create(a);
console.log(b.foo); //prints 1
console.log(b.__proto__); //prints undefined
b.__proto__ = null;
console.log(b.__proto__); //prints null
console.log(b.foo); //prints 1
有人能解释对象b
如何在将b.__proto__
设置为null之后访问a
的“foo”属性吗?用于访问A
属性的内部链接是什么?
我试图通过搜索寻找可能的解释,但找不到JavaScript这种特殊行为的任何解释。
问题是您正在使用不推荐使用的__proto__
属性,它是object.prototype
上的getter/setter-但是您的对象并不继承该属性,所以它首先是undefined
,赋值创建了一个名为__proto__
的标准属性。
使用正确的object.getPrototypeOf
/object.setPrototypeOf
,代码将执行预期的操作:
var a = Object.create(null);
a.foo = 1;
var b = Object.create(a);
console.log(b.foo); // 1
console.log(Object.getPrototypeOf(b)); // {foo:1} - a
Object.setPrototypeOf(b, null);
console.log(Object.getPrototypeOf(b)); // null
console.log(b.foo); // undefined
本文向大家介绍一种新的javascript对象创建方式Object.create(),包括了一种新的javascript对象创建方式Object.create()的使用技巧和注意事项,需要的朋友参考一下 Object.create() 是什么? Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不
问题内容: 我需要使用NDK以及JNI将一些功能实现到Android应用程序中。 这是我所写的C代码: 我的问题或多或少在代码内得到了解释。也许还可以:函数(jobject)的返回类型可以吗? 现在,NDKTest.java: 当我尝试运行代码时,它不起作用。 问题答案: 既然是内部类,那么获得它的方法就是 内部类的约定在权威规范中并未真正明确记录,但是根深蒂固地存在于如此多的工作代码中,因此不太
问题内容: 我想使用String创建一个JSON对象。 示例:JSON 为了创建上述JSON,我正在使用它。 我想知道如何创建一个具有JSON数组的JSON。 以下是示例JSON。 谢谢。 问题答案: 可能就是您想要的。
问题内容: 我试图通过传递另一个jsonObject与jsonObject转换jsonArray。请提供任何示例代码? 问题答案: 这样,您可以为响应编写POJO / Model类 ----------------------------------- com.example.HomePlace.java -------- ----------------------------------- c
问题内容: 基本上这就是问题,应该如何用javascript动态地从HTML字符串构造一个Document对象? 问题答案: 规范中定义了两种方法,分别2和HTML5。前者创建一个XML文档(包括XHTML),后者创建一个HTML文档。两者都作为功能驻留在接口上。 实际上,这些方法还很年轻,仅在最近的浏览器版本中实现。根据http://quirksmode.org和MDN的说明,以下浏览器支持:
我试图从字符串数组中创建一个新对象,但无法正确创建所需的对象。 我正在尝试创建一个对象,比如: 这是我的代码: null null