var app = (function () {test = function () {.....});});我想在外面調(diào)用app的test方法,怎么寫呢?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è)贊
需要通過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)訪問另一個(gè)函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的最常見的方式就是在一個(gè)函數(shù)內(nèi)創(chuàng)建另一個(gè)函數(shù),通過另一個(gè)函數(shù)訪問這個(gè)函數(shù)的局部變量。這種寫法就是閉包的寫法,閉包內(nèi)部的函數(shù)如果不是return方式,在外部無法獲取,無法進(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();
- 2 回答
- 0 關(guān)注
- 1480 瀏覽
添加回答
舉報(bào)
0/150
提交
取消