我是一個javascript新手,並試圖瞭解功能如何工作。我發現了一個類似的問題here,但它並沒有真正回答我的問題。爲什麼我需要返回「init」來執行init函數?
以下面片的javascript爲例
var test = function(){
console.log("kick off");
var insideTest = "variable inside test";
var init = function(){
var insideInit ="variable inside init";
console.log("inside init");
}
return{
init:init
}
}
test().init();
上述代碼打印如下:
kick off
inside init
但是如果刪除
return{
init:init
}
它給我一個錯誤說
Uncaught TypeError: Cannot read property 'init' of undefined
此外,即使我使用test().init()
調用init方法,但如果刪除了return語句,則不打印inside Init
。
我的問題是爲什麼有必要返回init:init
來執行init方法。
編輯: 要回答爲什麼我的初始化函數是測試()函數中這裏是我想要做的大局。
var test = function() {
var init = function() {
var a = 0;
function1();
function2();
}
var function1() = function() {
//some code
}
var function1() = function() {
//some code
}
return {
init: init
}
}
因爲如果你什麼也不返回,然後調用'測試()的結果是''undefined'它沒有所謂的'init'方法 –
你也可以'返回init',然後調用返回的函數'test()()'。或者,'var init = test(); init();' – guest271314
'即使我使用test()。init()它不會在Init'內部打印時調用init方法 - 因爲如果你不返回任何東西,你根本不會調用init –