JS跨頁面或跨JS文件對變量賦值,這是很小的一個問題。
但問題雖小,卻總覺得有點不夠自然,不爽。
為什么呢?訪問一個頁面上的變量不是什么難事,比如用parent.變量名,或者windows名.變量名,都可以。但這么一來,這個變量必須是全局變量,暴露在外界之下,而且,從B頁面直接去控制A頁面上的變量,或者從這個JS文件去控制另一個JS文件上的變量,耦合得很。
可以這么搞:
采用匿名函數,作為參數傳遞給另一個頁面或JS上的函數,在那里調用此匿名函數,將值傳回來。這個匿名函數的作用,就是用于設置本地的變量。
//B頁面上的函數,設置A頁面上的變量
function fB(setV){setV(123);
}//A頁面,調用B頁面上的fB
var myV;
fB(function(v){//此匿名函數就是setVmyV = v;
});