prototypejs - 在 JavaScript 中创建另一个对象的实例

标签 prototypejs prototype-programming javascript

我想知道这句话是否正确?

你可以这样做:

var a = new A();

当且仅当Ainstanceof 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/

相关文章:

javascript - jQuery定期更新: how to check whether content fetched is different from old content fetched

javascript - 使用 Scriptaculous 向上缩放元素

javascript 改变 Object.prototype 不起作用

javascript - 作为原型(prototype)的旧对象

javascript - 我们如何使用 Cypress 验证元素即使存在于 DOM 中也不会显示

javascript - EmberJS 未捕获类型错误 : Object [object Object] has no method 'create'

javascript - 使用 Stripes、Javascript 和 Ajax

javascript - jQuery 相对于其他 JavaScript 库有什么优势?

javascript - 使用 'instanceof function() {}' 的原因?

javascript - 一次又一次使用相同的查询选择器是否会产生性能成本?