var chapter = {
num: 7,
title: ‘Creating Functions’,
getNum: function() { return num; }\\without this keyword
};
输出未定义,没有关键字this
var chapter = {
num: 7,
title: ‘Creating Functions’,
getNum: function() { return this.num; }\\with this keyword
};
为什么需要这个关键字pls以简单的方式解释它。这个问题重复我知道,但我看到他们都不满足。所以请....
还有一件事就是这个代码实际上做了什么。
(function() {
// Function body goes here.
})();
我知道它立即调用的功能,但我需要一些细节解释。谢谢大家提前
答案 0 :(得分:2)
num
是当前范围中的变量 num
(由定义函数的位置决定)。
this.num
是当前上下文上的属性 num
(由函数决定 >)。
立即调用函数但我需要一些细节解释
JavaScript中的范围由函数决定。立即调用的函数创建一个新的作用域,用于避免向当前作用域添加额外的变量。
答案 1 :(得分:0)
回答你问题的最后一部分:'技巧'被称为闭包。
首先:(...)()
在第一组括号内创建一些内容然后调用其结果。如果我们将函数放在...
的位置,它将调用该函数。
有人这样做的原因是创建一个范围,允许人们定义各种事物而不污染全局范围(只需将var myVar = 1;
放在某处就可以将变量分配给全局范围。 ,你可以自由地制作你想要的所有混乱,而不会将全局范围变成任何其他脚本的混乱。