Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能解释这段基于IIFE(立即调用函数表达式)概念的代码的输出吗_Javascript_Iife - Fatal编程技术网

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"));