4 回答

TA貢獻1877條經(jīng)驗 獲得超1個贊
用變量模擬的方法:
例:將變量parent當做父函數(shù), 將其賦值child1, child2, child...等任意多子函數(shù)的哈希值作子函數(shù). 調(diào)用使用用parent.childN這樣的形式也可實現(xiàn)類似"調(diào)用一個函數(shù)里面的函數(shù)"的方法
var parent = {
/*子函數(shù)1*/
child1:function(){
alert('child1');
},
/*子函數(shù)2*/
child2:function(){
alert('child2');
},
/*子函數(shù).....*/
};
parent.child1();
輸出:child1
這里用變量parent模擬了一個父函數(shù),
通過:
變量名.子函數(shù)();
的形式實現(xiàn)調(diào)用一個函數(shù)里面的函數(shù)

TA貢獻1802條經(jīng)驗 獲得超5個贊
注意這是js函數(shù).
這是一個js閉包(closure)問題, 這個問題主要的特點就是定義變量的作用域.
1:函數(shù)內(nèi)部可以直接讀取全局變量.
2:函數(shù)外部無法讀取函數(shù)內(nèi)的局部變量.
這個例子中對于c()來說a()內(nèi)部函數(shù)b()是局部變量, 不可以直接調(diào)用.
可改為以下方式調(diào)用:
123456789 | function a(){ this .b = function (){ console.log( 'a().b()' ); } } function c(){ var object = new a(); object.b(); } |
- 4 回答
- 0 關注
- 719 瀏覽
添加回答
舉報