我想知道这句话是否正确?
你可以这样做:
var a = new A();
当且仅当A
是instanceof Function
。
简单地,您可以创建函数的实例,并且您知道函数是一个对象。为什么我们不能创建其他用户定义对象的实例?像这样:
var b={};
var c = new b(); //error
编辑:如何更改 b
以便我可以创建它的实例?
最佳答案
您实际上可以使用 Object.create()
来围绕 ECMAscript 的原型(prototype)性质添加一些糖分。喜欢
var b = { };
var c = Object.create( b );
现在,c 的原型(prototype)链上将有 b
。 ECMAscript 或更准确地说,原型(prototype)继承的工作方式与“经典继承”并不完全相同。通过在调用函数时调用new
,您实际上也会收到一个新创建的对象。您可以通过构造函数中的 this
值修改和访问该对象。
但是,到目前为止你还没有继承任何东西。在创建它的实例之前,您需要为构造函数创建并填充 .prototype
对象。这种模式惹恼了很多人,因此 ES5 提供了一种更方便的方法,使用 Object.create()
直接从其他对象继承。
关于prototypejs - 在 JavaScript 中创建另一个对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206718/