Javascript 当iLife返回一个值时,该值存在于何处?
当我在示例中尝试该示例时,没有返回,因此我添加了它,因为我认为它应该返回(我不确定我是否正确) 未定义它登录到我的控制台Javascript 当iLife返回一个值时,该值存在于何处?,javascript,iife,Javascript,Iife,当我在示例中尝试该示例时,没有返回,因此我添加了它,因为我认为它应该返回(我不确定我是否正确) 未定义它登录到我的控制台MyClass 如果iLife返回一个类,为什么它说没有定义MyClass (function() { var key = Symbol("key"); function MyClass(privateData) { this[key] = privateData; } MyClass.prototype = { doStuff: func
MyClass
如果iLife返回一个类,为什么它说没有定义MyClass
(function() {
var key = Symbol("key");
function MyClass(privateData) {
this[key] = privateData;
}
MyClass.prototype = {
doStuff: function() {
}
};
return MyClass //this is no return for the original example
})();
var c = new MyClass("hello")
c["key"]
与任何其他函数调用一样,该值位于函数的左侧
var return_value_of_x = x();
或
因为你的生命中没有任何东西,所以这个值被丢弃了
在您的示例中,MyClass
是在IIFE中声明的变量。它不存在于该函数之外。您可以在更大范围内创建另一个同名变量:
var MyClass = (function () { …
如果你的生命正在返回一个值,你可以像这样存储这个值
let returnedValue = (function(){console.log('return'); return 2;})();
let returnedValue = (function(){console.log('return'); return 2;})();