在使用构造函数时,我很难理解原型继承。我上了奥丁项目的这课,它说:
如果使用构造函数来生成对象,最好在该对象的原型上定义函数。这样做意味着每个函数的一个实例将在所有Student对象之间共享。如果我们像第一次引入函数时一样,在构造函数中直接声明该函数,则该函数将在每次创建新学生时重复。
function Student() {
}
Student.prototype.sayName = function() {
console.log(this.name)
}
我理解为什么您不想为对象的每个实例复制函数,但我不理解两件事:
发布于 2022-11-26 17:08:51
有几个人回答了我的问题,但没有给出任何答案。为了回答这个问题,我汇编了他们在这里提供的资料。
类::类语法方法自动添加到原型中。
对象()构造函数:不用于使用方法定义对象。
模块模式:模块模式没有多个实例,因此没有可以复制函数的实例。
工厂函数:受到此问题的影响,但是有一些方法可以减轻这种影响。请查看Bergi的回复,其中详细介绍了一些减轻该问题的方法。
https://stackoverflow.com/questions/74553836
复制相似问题