作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如您所知,__proto__
是 deprecated .
MDN: Warning: The
__proto__
property is deprecated and should not be used.
__proto__
的快速跨浏览器替代方案是什么?在我的例子中,我更改了一个函数的 __proto__
。所以我找不到任何替代品。
弃用的代码
// one time
var proto = {};
proto.bar = function (x) { return this(x) + 10; };
proto.buzz = function () { return this(4); };
// and 100 more function proto.*
proto = _.extend(proto, (function(){}).__proto__); // underscore extend function
// update: change arguments order
// many time
var foo = function (x) { return 2 * x; }
foo.__proto__ = proto;
慢速替代(jsperf)
// many time
var foo = function (x) { return 2 * x; };
foo.bar = function (x) { return this(x) + 10; };
foo.buzz = function () { return this(4); };
// and 100 more function foo.*
是否有任何快速且跨浏览器的替代方案?
最佳答案
正如链接的 MDN 文章中所述,Object.getPrototypeOf()
是新功能。它似乎有很好的浏览器支持。对于那些不支持它的(除了 IE),你可以用 __proto__
填充它。 ;)
if (!Object.getProtoTypeOf) {
Object.getProtoTypeOf = function(obj) {
return obj.__proto__;
};
}
关于javascript - __proto__ 已弃用。什么是快速和跨浏览器的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156976/
我是一名优秀的程序员,十分优秀!