__proto__ for IE9 or IE10
__proto__ for IE9 or IE10
是否有可能在IE9或IE10中更改对象的__proto__
属性?还是微软仍然不打算在他们的JS引擎中包含它?
我在一个非常特殊的情况下需要它,我需要在对象创建后更改__proto__
__proto__
将在ES6中标准化。它目前在ES6草案的附录B中,这实际上意味着如果它被实现,它需要具有以下语义。
__proto__
作为Object.prototype
的访问器都是可用的,这意味着默认情况下所有对象都可以读写它。然而,它可以从Object.prototype
中移除(使用delete
)。一旦删除,__proto__
将作为一个正常的数据属性工作,在设置时没有副作用。
__proto__
也是对象字面量中的一种特殊语法形式。即使删除了Object.prototype.__proto__
,也可以设置[[Prototype]]。
ES6还引入了Object.setPrototypeOf
(不在附录中)。这优于设置__proto__
。
__proto__
可在所有现代浏览器中使用,包括Internet Explorer 11。
__proto__
包含在IE11中,在Windows Blue的泄漏版本中发现:http://fremycompany.com/BG/2013/Internet-Explorer-11-rsquo-s-leaked-build-395/
不得已不回答:
修改你的代码,使所有原本可以通过修改后的原型访问的属性现在都可以通过普通属性的显式委托访问:
{
a: 17,
__proto__: { ... }
}
{
a: 17,
proto: {...}
}
我不确定你到底是什么,因为你的问题没有指定,但对于大多数用途的原型,你应该能够使用prototype
。
var foo = new Bar();
//this also affects foo
Bar.prototype.baz = something;
- 在不阻止默认行为的情况下检测IE10中的缩放
- Angular 2.0 with JavaScript or TypeScript?
- WebComponentsJS with IE10
- SharePoint 2010 Jquery/JSON Rest Multiple OR语句-如何
- 链接上的IE10 jquery句柄单击事件不起作用
- Console.debug在ie10中不工作
- GWT (or javascript) library for couchDB
- 在 Jquery/Javascript 中使用多个 OR (||) 运算符时如何设置变量
- JavaScript中的逻辑OR(||)
- ||(OR)运算符如何在赋值中工作
- SCRIPT438:对象没有't支持属性或方法'endsWith'在IE10中
- 在Javascript中为if/else语句添加OR
- IE10+11:XSLT转换将任意CR/LF添加到XML中
- 如何用Javascript编写OR
- 框架集+列IE10
- 如何利用“;OR”;用于表单字段验证的运算符
- jquery onclick or onchange on different elements
- 消除JavaScript中的多个OR条件
- 如果查询使用AND失败,但使用OR有效
- __proto__ for IE9 or IE10