1. 程式人生 > >javascript函式的靜態載入與動態執行

javascript函式的靜態載入與動態執行

函式定義是,已經寫入了記憶體,是靜態的模式,但是我們經常想得到的缺失動態效果

錯誤

var trs = document.getElementById("tr");
var length = trs.length;
for(var index=0;index<length;index++){
    trs[index].onmouseover = function(){
        trs[index].style.color = "red";
    }
}
函式定義時,只會載入進入記憶體,是不會執行的

對於函式內變數,重複的重新整理只會保留最後重新整理的值

通過靜態的宣告的函式,只能夠實現一次的操作,多層的操作會報錯

尤其是想通過迴圈將單一的函式操作賦予多個標籤時

想要只定義一個方法,實現多重的動態操作,有兩種辦法

1. 物件指定:在物件屬性直接宣告,函式和標籤直接分離,相當於傳入引數後定製函式

function test(index){
    var trs = document.getElementById("tr");
    trs[i].style.color = "red";
}

2. 動態介面:使用this關鍵字,讓函式能夠自動識別自身扮演角色,而不是呆板的單一模板
var trs = document.getElementById("tr");
var length = trs.length;
for(var index=0;index<length;index++){
    trs[index].onmouseover = function(){
        this.style.color = "red";
    }
}
自我識別,利用同一份模板,但是對於自身角色能夠準確的識別

有生命的物件而不是沉悶的死物模板

3. 時間監聽

var text = document.getElementById("text");
text.addEventListener(type,func,model);
其中

type:事件型別,onclick...

func:執行的函式

model:響應型別,

    true:捕捉,先父後子

    false:冒泡,先子後父,預設

同一事件,可以同時繫結多個方法,分開新增事件即可