if(typeof Object.create !== "function") {
Object.create = function(o) {
function F(){}
F.prototype = 0;
return new F();
};
为什么if(typeof Object.create !== "function")
是刚刚创建的并且是内置方法?为什么需要检查它是否是一个函数,如创建的那样?
答案 0 :(得分:3)
这将测试JS引擎是否具有本机Object.create
方法。
如果没有,则添加一个。
这是为了避免用JS编写的方法替换内置方法(可能会进行大量优化)。
答案 1 :(得分:0)
Object.create()
方法使用现有对象来提供新创建的对象的___proto____,从而创建一个新对象。 -MDN
该条件检查Object.create()
是否可用。在某些JS引擎中,情况并非如此,这就是为什么必须进行检查的原因。