抱歉,如果这是一个菜鸟问题,但我仍然无法理解其用法的区别,因此我无法使用正确的关键字在 google 上进行搜索。
我正在关注 this 闭包教程。
现在我的查询是针对这段代码 -
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
为什么作为函数的 displayName
在代码中被引用为属性?作为一个闭包函数,当我尝试这段代码时,它需要作为一个属性返回 -
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName();
}
var myFunc = makeFunc();
myFunc();
输出 - 警告但错误 TypeError: myFunc is not a function
。
让我知道什么时候使用什么或我在这里缺少什么基本概念。
最佳答案
“返回显示名称;”正在返回函数 displayName。
然后将结果设置为 myFunc。
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
如果你想到:
会更容易理解:
函数显示名称(){}
作为替代:
显示名称 = 函数(){}
makeFunc = function () {
var name = "Mozilla";
displayName = function () {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
关于javascript - 在 javascript 中使用 () 作为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26174053/