Joh*_*ohn 55 javascript prototype object-literal
STORE = {
item : function() {
}
};
STORE.item.prototype.add = function() { alert('test 123'); };
STORE.item.add();
Run Code Online (Sandbox Code Playgroud)
我一直想弄清楚这有什么问题.为什么这不起作用?但是,当我使用以下内容时它可以工作:
STORE.item.prototype.add();
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 81
原型对象用于构造函数,基本上是使用new运算符调用以创建新对象实例的函数.
JavaScript中的函数是第一类对象,这意味着您可以向它们添加成员并将它们视为普通对象:
var STORE = {
item : function() {
}
};
STORE.item.add = function() { alert('test 123'); };
STORE.item.add();
Run Code Online (Sandbox Code Playgroud)
如前所述,原型对象的典型用法是通过使用new运算符调用构造函数来实例化对象,例如:
function SomeObject() {} // a constructor function
SomeObject.prototype.someMethod = function () {};
var obj = new SomeObject();
Run Code Online (Sandbox Code Playgroud)
SomeObject的所有实例都将继承成员SomeObject.prototype,因为这些成员将通过原型链进行访问.
JavaScript中的每个函数都有一个原型对象,因为无法知道哪些函数可以用作构造函数.
Krz*_*ski 14
多年以后,当JavaScript(ES2015到货)时我们终于有了Object.setPrototypeOf()方法
const STORE = {
item: function() {}
};
Object.setPrototypeOf(STORE.item, {
add: function() {
alert('test 123');
}
})
STORE.item.add();Run Code Online (Sandbox Code Playgroud)