在JavaScript中重写Object.create方法
如果我像这样用JavaScript创建一个对象:在JavaScript中重写Object.create方法,javascript,node.js,Javascript,Node.js,如果我像这样用JavaScript创建一个对象: var foo = { create: function(){} } 这会覆盖Object.create函数吗?否,因为create是foo的属性 对于向后兼容的对象。创建: if(!Object.create){ Object.create = function(o){ function F(){}; F.prototype = o; return new F; } } 否,因为create是foo的属性 对于向后兼
var foo = {
create: function(){}
}
这会覆盖Object.create函数吗?否,因为
create
是foo
的属性
对于向后兼容的对象。创建:
if(!Object.create){
Object.create = function(o){
function F(){}; F.prototype = o;
return new F;
}
}
否,因为create
是foo
的属性
对于向后兼容的对象。创建:
if(!Object.create){
Object.create = function(o){
function F(){}; F.prototype = o;
return new F;
}
}
不,不会的
您创建的对象将有一个create
方法,即foo.create
,但是object
对象仍然有自己的create
功能
请注意,对象.create
函数不在对象.prototype.create
中,也就是说,它不是任何已创建对象中存在的方法,它只作为对象
函数对象的一个属性存在。不,它不会
您创建的对象将有一个create
方法,即foo.create
,但是object
对象仍然有自己的create
功能
请注意,Object.create
函数不在Object.prototype.create
中,也就是说,它不是创建的任何对象中存在的方法,它只作为对象
函数对象的属性存在。不,它不会。不,无论如何,你绝对不能这么做。你为什么要问?亲戚:不,不会的。不,无论如何,你绝对不能这么做。你为什么要问?相关:也可以使用对象的构造函数来访问它,比如foo.constructor.create(foo)
@jungy:这太依赖于foo
,所以不应该使用它。@Bergi是的,我完全同意不应该使用它。我只是不希望人们认为构造函数和实例是同一件事。它也可以使用对象的构造函数来访问,比如foo.constructor.create(foo)
@jungy:这在很大程度上取决于foo
,所以不应该使用它。@Bergi是的,我完全同意不应该使用它。我只是不希望人们认为构造函数和实例是同一件事。