STORE = {
item : function() {
}
};
STORE.item.prototype.add = function() { alert('test 123'); };
STORE.item.add();
我一直在试图弄清楚这到底是怎么回事。为什么这个不起作用?但是,当我使用以下命令时,它可以正常工作:
STORE.item.prototype.add();
发布于 2016-04-19 19:45:39
许多年后,当JavaScript (ES2015 )到来时,我们终于有了Object.setPrototypeOf()方法
const STORE = {
item: function() {}
};
Object.setPrototypeOf(STORE.item, {
add: function() {
alert('test 123');
}
})
STORE.item.add();
发布于 2016-09-28 18:03:50
在编写本文时,这可以通过使用__proto__
属性来实现。以防这里的任何人现在和将来都在检查。
const dog = {
name: 'canine',
bark: function() {
console.log('woof woof!')
}
}
const pug = {}
pug.__proto__ = dog;
pug.bark();
但是,在这种情况下,推荐的添加原型的方式是使用Object.create。因此,上面的代码将被转换为:
const pug = Object.create(dog)
pug.bark();
或者,您也可以使用其中一个答案中提到的Object.setPrototypeOf。
希望这能有所帮助。
发布于 2019-06-23 23:09:28
STORE = {
item : function() {
}
};
此命令将创建一个STORE对象。你可以通过typeof STORE;
查看。它应该返回'object‘。如果你输入STORE.item;
,它会返回‘Function..’。
因为它是一个普通的对象,所以如果你想改变item函数,你可以用这个命令访问它的属性/方法。
STORE.item = function() { alert('test 123'); };
尝试函数,它仍然应该返回‘STORE.item;
..’。
尝试STORE.item();
,然后将显示警报。
https://stackoverflow.com/questions/1592384
复制相似问题