【发布时间】: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