首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与对象文字混淆

与对象文字混淆
EN

Stack Overflow用户
提问于 2018-01-01 22:13:59
回答 1查看 77关注 0票数 4

最近,我遇到了用于创建具有相同属性和方法的多个对象的构造函数。

方法1:

代码语言:javascript
复制
function Person(name) {
  this.name =  name;
}

然后您可以像这样实例化它:

代码语言:javascript
复制
var bob = new Person("bob");

我想知道的是,使用标准构造函数方法与只在如下函数中返回对象之间有什么区别:

方法2:

代码语言:javascript
复制
function Person(name) {
  var obj = {
    name:  name,
  };
  return obj;
}

我仍然能够使用相同的函数创建多个对象。我只是有点困惑,为什么你会使用‘方法1'?是因为我可以使用prototype属性扩展第一个方法吗?我能用'Method 2‘扩展和创建更多的方法吗?

我认为这就是为什么使用构造函数是正确的,因为它们更灵活,可以添加和修改,而函数中的对象文字类型却不能?此外,它还带来了哪些其他好处?

抱歉,如果这是个愚蠢的问题。

谢谢,任何信息都会很好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-01 22:32:13

考虑:

代码语言:javascript
复制
  function Person(name) { /* either of your approaches */}

  Person.prototype.getName = function() {
    return this.name; 
  }

方法1将按预期工作,如果您调用:

代码语言:javascript
复制
  new Person('Bob').getName ()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48053678

复制
相关文章

相似问题

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