首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将原型添加到JavaScript对象文本

将原型添加到JavaScript对象文本
EN

Stack Overflow用户
提问于 2009-10-20 04:09:02
回答 3查看 30.2K关注 0票数 58
代码语言:javascript
复制
STORE = {
   item : function() {
  }
};
STORE.item.prototype.add = function() { alert('test 123'); };
STORE.item.add();

我一直在试图弄清楚这到底是怎么回事。为什么这个不起作用?但是,当我使用以下命令时,它可以正常工作:

代码语言:javascript
复制
STORE.item.prototype.add();
EN

回答 3

Stack Overflow用户

发布于 2016-04-19 19:45:39

许多年后,当JavaScript (ES2015 )到来时,我们终于有了Object.setPrototypeOf()方法

代码语言:javascript
复制
const STORE = {
  item: function() {}
};


Object.setPrototypeOf(STORE.item, {
  add: function() {
    alert('test 123');
  }
})


STORE.item.add();

票数 18
EN

Stack Overflow用户

发布于 2016-09-28 18:03:50

在编写本文时,这可以通过使用__proto__属性来实现。以防这里的任何人现在和将来都在检查。

代码语言:javascript
复制
const dog = {
    name: 'canine',
    bark: function() {
        console.log('woof woof!')
    }
}

const pug = {}
pug.__proto__ = dog;

pug.bark();

但是,在这种情况下,推荐的添加原型的方式是使用Object.create。因此,上面的代码将被转换为:

代码语言:javascript
复制
const pug = Object.create(dog)

pug.bark();

或者,您也可以使用其中一个答案中提到的Object.setPrototypeOf

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-06-23 23:09:28

代码语言:javascript
复制
STORE = {
   item : function() {
  }
};

此命令将创建一个STORE对象。你可以通过typeof STORE;查看。它应该返回'object‘。如果你输入STORE.item;,它会返回‘Function..’。

因为它是一个普通的对象,所以如果你想改变item函数,你可以用这个命令访问它的属性/方法。

代码语言:javascript
复制
STORE.item = function() { alert('test 123'); };

尝试函数,它仍然应该返回‘STORE.item; ..’。

尝试STORE.item();,然后将显示警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1592384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档