gpt4 book ai didi

javascript - 谁能解释一下这段基于 IIFE(立即调用的函数表达式)概念的代码的输出

转载 作者:行者123 更新时间:2023-11-30 00:06:14 25 4
gpt4 key购买 nike

(function(value){

var names = ["January","February","March","April","May","June","July",
"August","September","October","November","December"];

value.name = function(number){
return names[number];
};

value.number = function(name){
return names.indexOf(name);
};
})(this.month = {});

console.log(month.name(2));
console.log(month.number("November"));

请帮我解释一下这个程序是如何工作的。我不明白为什么要在函数外创建一个新对象以及为什么要使用 this 运算符。

最佳答案

this 将是全局对象(因为它未在函数内部使用)。

this.month = {} 将一个新对象分配给全局对象上的 month

赋值作为分配的值计算,以便传递给函数。

本质上,这只是一种丑陋且不直观的书写方式:

function myFunction(value) {

var names = ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"
];

value.name = function(number) {
return names[number];
};

value.number = function(name) {
return names.indexOf(name);
};
}

var month = {};
myFunction(month);
console.log(month.name(2));
console.log(month.number("November"));

它使用 this,因为您不能在用于调用函数的 () 中使用 var

关于javascript - 谁能解释一下这段基于 IIFE(立即调用的函数表达式)概念的代码的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413710/

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