选择题1610/1620输出是什么?

1function Person(firstName, lastName) { 2 this.firstName = firstName; 3 this.lastName = lastName; 4} 5 6const member = new Person("Lydia", "Hallie"); 7Person.getFullName = function () { 8 return `${this.firstName} ${this.lastName}`; 9} 10 11console.log(member.getFullName());
难度:
2021-07-02 创建

本题为"单选题"

参考答案:

正确选项:A:TypeError

你不能像常规对象那样,给构造函数添加属性。如果你想一次性给所有实例添加特性,你应该使用原型。因此本例中,使用如下方式:

1Person.prototype.getFullName = function () { 2 return `${this.firstName} ${this.lastName}`; 3}

这才会使 member.getFullName() 起作用。为什么这么做有益的?假设我们将这个方法添加到构造函数本身里。也许不是每个 Person 实例都需要这个方法。这将浪费大量内存空间,因为它们仍然具有该属性,这将占用每个实例的内存空间。相反,如果我们只将它添加到原型中,那么它只存在于内存中的一个位置,但是所有实例都可以访问它!

最近更新时间:2021-07-03

赞赏支持

题库维护不易,您的支持就是我们最大的动力!