gpt4 book ai didi

javascript - 需要的javascript代码解释

转载 作者:行者123 更新时间:2023-11-30 12:47:18 25 4
gpt4 key购买 nike

这是一个函数:

function ShowHelloWorld(){
this.x=4;
var y=5;
return 6;
}

语句 1.var res1 = ShowHelloWorld;

1.1 因此,res1 是 ShowHelloWorld 函数的副本。

1.2 res1() 得到 6。

1.3 无法从 res1 获得值 4 和 5。

语句 2.var res2 = ShowHelloWorld();

2.1 res2 作为一个函数的结果得到 6。

2.2 无法从 res2 获得值 4 和 5。

语句 3.var res3 = new ShowHelloWorld();

3.1 这里res3是函数ShowHelloWorld()的一个实例。

3.2 res3.x 可以到达。//res3.x==4

3.3 无法从 res3 获得值 5 和 6。

语句 4.var res4 = new ShowHelloWorld;//没有 ()

4.1 似乎 res4 与 res3 相同。为什么? (我在浏览器控制台中测试时看到它是一样的)。

4.2 这行是什么意思(没有错误就有意义吧?)

请回答我的问题或更正我的陈述,以防它们不正确或可以做得更好。

谢谢。

最佳答案

1) res1 不是 ShowHelloWorld 的副本。它只是一个引用,一个别名。

2) res2 是调用ShowHelloWorld 的结果。其余的都是真的。

3) 有点真实。但是,如果您返回一个对象(6 是原始对象,而不是对象),则new 将返回该对象。看看这个片段:

function ShowHelloWorld(){
this.x=4;
var y=5;
return {};
}

现在除了最终对象 {} 之外,什么都不可访问。因此,如果您想将一个函数视为一个类(即您想要对其使用 new),那么最好省略 return 语句。

4) new ShowHelloWorld; 只是 new ShowHelloWorld();

的别名

关于javascript - 需要的javascript代码解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092073/

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