gpt4 book ai didi

JavaScript 函数副本

转载 作者:行者123 更新时间:2023-11-28 13:41:37 25 4
gpt4 key购买 nike

我有一个关于 javascript 如何在内部存储函数的问题。鉴于此代码:

var makesomething = function (x) {
var thing = {
x: x
};

thing.do = function () {
this.x++;
};

return thing;
};

var x1 = makesomething(1);
var x2 = makesomething(2);

由于我调用了 makesomething 函数两次,这是否意味着本质上有“do”函数的两个副本,或者对象是否引用相同的函数但使用不同的闭包进行调用?

最佳答案

有两个副本,每次调用 makesomething() 时都会创建一个副本。

您会注意到 x1.do === x2.dofalse

如果你这样做:

var doIt = function() {
this.x++;
};
var makesomething = function (x) {
var thing = {
x: x
};

thing.do = doIt;

return thing;
};

var x1 = makesomething(1);
var x2 = makesomething(2);

那么两者都引用同一个函数,并且x1.do === x2.do将为true

关于JavaScript 函数副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17499676/

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