gpt4 book ai didi

javascript - 如何在闭包中制作原型(prototype)?

转载 作者:行者123 更新时间:2023-11-30 15:28:14 24 4
gpt4 key购买 nike

在这里,我有这两段代码:

var mod = function() {
var a = function() {
this.fucname = 'hello';
};

a.prototype.build = function() {
return 'before '+this.fucname;
};

return new a();
};

for( var i=0; i<10000; i++ ){
var newfuc = mod();
};

var a = function() {
this.fucname = 'hello';
};

a.prototype.build = function() {
return 'before '+this.fucname;
};

for( var i=0; i<10000; i++ ){
var newfuc = new a();
};

我在 chrome dev 中检查了两者之后,第二个代码占用了 JS HEAP 3.0MB,第一个代码占用 JS HEAP 10MB。

这是否意味着构建函数已在第一段代码中创建了 10000 次?以及如何在不移除封面 mod 的情况下改进它?

我必须向函数传递一些东西...

最佳答案

如果你想隐藏构造函数但只计算一次,你可以使用 IIFE创建新范围:

var mod = (function() {
var a = function() {
this.fucname = 'hello';
};

a.prototype.build = function() {
return 'before ' + this.fucname;
};

return function() {
return new a();
};
})();

for (var i = 0; i < 10000; i++) {
var newfuc = mod();
}

关于javascript - 如何在闭包中制作原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639930/

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