Javascript 有人能解释这段基于IIFE(立即调用函数表达式)概念的代码的输出吗
请帮我解释一下这个程序是如何工作的。我不明白为什么要在函数之外创建新对象,为什么要使用这个操作符Javascript 有人能解释这段基于IIFE(立即调用函数表达式)概念的代码的输出吗,javascript,iife,Javascript,Iife,请帮我解释一下这个程序是如何工作的。我不明白为什么要在函数之外创建新对象,为什么要使用这个操作符 此将是全局对象(因为它没有在函数中使用) this.month={}将新对象分配给全局对象上的month 赋值按赋值进行计算,以便传递给函数 从本质上讲,这只是一种丑陋而不直观的写作方式: (function(value){ var names = ["January","February","March","April","May","June","July",
此
将是全局对象(因为它没有在函数中使用)
this.month={}
将新对象分配给全局对象上的month
赋值按赋值进行计算,以便传递给函数
从本质上讲,这只是一种丑陋而不直观的写作方式:
(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
,因为您不能在用于调用函数的()
中使用var
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"));