STORE = { item : function() { } }; STORE.item.prototype.add = function() { alert(‘test 123’); }; STORE.item.add();
一段时间以来,我一直在试图找出问题所在。为什么不起作用?但是,当我使用以下命令时,它可以工作:
STORE.item.prototype.add();
原型对象应在构造函数上使用,基本上是将使用new运算符调用的函数来创建新的对象实例。
JavaScript中的函数是一类对象,这意味着您可以向其添加成员并将其像普通对象一样对待:
var STORE = { item : function() { } }; STORE.item.add = function() { alert('test 123'); }; STORE.item.add();
如前所述,原型对象的典型用法是通过使用new运算符调用构造函数来实例化对象,例如:
function SomeObject() {} // a constructor function SomeObject.prototype.someMethod = function () {}; var obj = new SomeObject();
SomeObject的所有实例都将从继承成员SomeObject.prototype,因为这些成员将通过原型链进行访问。
SomeObject.prototype
JavaScript中的每个函数都有一个原型对象,因为无法知道打算将哪些函数用作构造函数。