【问题标题】:How a method or function do same thing when we create two difference object/instance on Javascript?当我们在 Javascript 上创建两个不同的对象/实例时,方法或函数如何做同样的事情?
【发布时间】:2020-04-30 02:57:43
【问题描述】:

当我在网上看到Prototypes in JavaScript article 时,我看到了这段代码

function Human(firstName, lastName) {
    this.firstName = firstName,
    this.lastName = lastName,
    this.fullName = function() {
        return this.firstName + " " + this.lastName;
    }
}

var person1 = new Human("Virat", "Kohli");

console.log(person1);

当他解释这一点时,他提到了"two instances of function fullName that do the same thing."。我在这一点上感到困惑。这个函数如何做同样的事情?因为这个函数会显示两个不同的全名,所以怎么可能做同样的事情呢?任何人都可以帮助我吗?

【问题讨论】:

  • 作者的意思是 fullName 方法将为创建的每个对象返回相同的属性
  • 最大的问题是我们每次创建对象的时候,都会一遍又一遍地重新创建fullname这样的泛型方法,因为我们只是浪费内存,所以我们使用原型概念,但是像firstname,lastname这样的属性当我们创建对象时,我们一次又一次地创建每个对象也有通用属性,所以这也浪费了内存。那么为什么他们提到方法只是在浪费内存呢?对不起,我是这个概念的初学者,所以我有这些疑问,我的英语也不好抱歉。

标签: javascript function methods prototype


【解决方案1】:

这意味着 fullName 的输出将始终是新对象的 firstName + lastName ... 所以 fullName 总是使用新对象的相同属性。

【讨论】:

  • 我从你的回答中得到了一些想法,但是在 Javascript 中,这些方法是完全通用的吗? “这些方法中的每一个都是动态的”是什么意思?它是如何通用的?你能解释一下吗?
猜你喜欢
  • 1970-01-01
  • 2011-01-20
  • 2011-06-15
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多