var app = (function () {test = function () {.....});});我想在外面調(diào)用app的test方法,怎么寫(xiě)呢?app.test() 提示找不到方法。var app = (function () {test = function () {.....});init = function () {.....});return {test:test,init: init,};});這段js里面本身有一個(gè)init函數(shù),直接調(diào)app.init()是可以的,我加的test方法為什么調(diào)不到呢?
2 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
需要通過(guò)return的方式把要調(diào)用的函數(shù)返回給外部。
比如:
12345678 | <script> var ta = ( function (){ //定義一個(gè)閉包匿名函數(shù)。 return function (){ //返回匿名函數(shù)內(nèi)部的匿名函數(shù)給ta alert( '1' ); } })(); ta(); //執(zhí)行ta,彈出信息1 </script> |
補(bǔ)充:
閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的最常見(jiàn)的方式就是在一個(gè)函數(shù)內(nèi)創(chuàng)建另一個(gè)函數(shù),通過(guò)另一個(gè)函數(shù)訪問(wèn)這個(gè)函數(shù)的局部變量。這種寫(xiě)法就是閉包的寫(xiě)法,閉包內(nèi)部的函數(shù)如果不是return方式,在外部無(wú)法獲取,無(wú)法進(jìn)行調(diào)用。

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
var app=(function(){
this.test=function(){
....
};
});
new app().test();
添加回答
舉報(bào)
0/150
提交
取消