在JavaScript中重写Object.create方法

在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的属性 对于向后兼

如果我像这样用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
的属性

对于向后兼容的
对象。创建

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是的,我完全同意不应该使用它。我只是不希望人们认为构造函数和实例是同一件事。