Javascript __IE9或IE10的协议
是否有可能更改IE9或IE10中对象的Javascript __IE9或IE10的协议,javascript,internet-explorer,prototype,Javascript,Internet Explorer,Prototype,是否有可能更改IE9或IE10中对象的\uuuu proto\uuuu属性? 还是微软还不打算将其包含在JS引擎中 我需要在一个非常特殊的情况下使用它,在创建对象后我需要更改\uuuu proto\uuuu。我不确定您到底想要什么,因为您的问题没有具体说明,但是对于proto的大多数使用,您应该能够使用原型 var foo = new Bar(); //this also affects foo Bar.prototype.baz = something; 作为最后一种手段的不答辩: 更改您的
\uuuu proto\uuuu
属性?
还是微软还不打算将其包含在JS引擎中
我需要在一个非常特殊的情况下使用它,在创建对象后我需要更改
\uuuu proto\uuuu
。我不确定您到底想要什么,因为您的问题没有具体说明,但是对于proto的大多数使用,您应该能够使用原型
var foo = new Bar();
//this also affects foo
Bar.prototype.baz = something;
作为最后一种手段的不答辩:
更改您的代码,以便最初通过更改的原型访问的所有属性现在都可以通过显式委托访问普通属性:
{
a: 17,
__proto__: { ... }
}
到
\uuuu proto\uuuu
将在ES6中标准化。目前,它实际上意味着,如果实现它,它需要具有以下语义
\uuuu proto\uuuu
都可以作为对象的访问器。prototype
意味着默认情况下所有对象都可以读写它。但是,它可以从Object.prototype
中删除(使用delete
)。一旦删除\uuuu proto\uuuu
将作为正常数据属性工作,对设置没有任何副作用
\uuuu proto\uuuu
也是对象文本中的一种特殊句法形式。即使删除了Object.Prototype.\uuuu proto\uuuu
,也可以设置[[Prototype]]
var p = {a: 1};
var o = {
__proto__: p,
b: 2
}
var p={a:1};
变量o={
__原型:p,
b:2
}
ES6还介绍了(不在附录中)。这比设置\uuuu proto\uuuu
更可取
\uuuuu proto\uuuuu
在所有现代浏览器中都可用。\uuuuuu proto\uuuuu
包含在泄漏的Windows Blue版本中发现的IE11中:我没有指定,因为我唯一想知道的是IE9/10是否支持修改proto属性,因为它是目前唯一不支持它的浏览器。我不理解“new Bar();”。你怎么能用Object.create重写这个呢?我希望这是真的。您知道ES6是否允许有效地从Array派生吗?proto不在标准轨道上-而是ES6批准的Object.setPrototypeOf以获得更好的支持是的ES6将支持子类化内置的本机类,如Array。
var p = {a: 1};
var o = {
__proto__: p,
b: 2
}