gpt4 book ai didi

javascript - JavaScript 类实例是否克隆函数?

转载 作者:行者123 更新时间:2023-11-28 15:12:46 25 4
gpt4 key购买 nike

如果我有以下代码:

function myClass(){
this.type = 1;
this.ret = function(){
return this.type;
}
}

var ins1 = new myClass,
ins2 = new myClass,
ins3 = new myClass;

ins2.type = 2;
ins3.type = 3;

console.log(ins1.ret() + ' - ' + ins2.ret() + ' - ' + ins3.ret());

控制台的输出是

1 - 2 - 3

当代码运行时(console.log() 部分),是否有一个方法 ret() 正在运行,还是三个?如果每个实例都创建一个新方法,我该如何避免这种情况?如果他们都做同样的事情,为什么要三个。

最佳答案

方法确实不同。你在浪费内存。

ins1.ret == ins2.ret; // false

相反,您可以在原型(prototype)中定义方法:

function myClass(){}
myClass.prototype.type = 1;
myClass.prototype.ret = function(){
return this.type;
};

关于javascript - JavaScript 类实例是否克隆函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com