複製程式碼
程式碼如下:
/*函數呼叫模式*/
var add> alert(this)//this被綁頂到window
return a b;
} var sum=add(3,4);
alert (sum)
複製程式碼
程式碼如下:
/*構造器呼叫模式var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa"); alert(qq.get_status());
複製程式碼
程式碼如下:
/*apply*/
//注意使用了上面的sum函數
//與myobject
//這中呼叫方式的優點在於可以指向this指向的物件。
//apply的第一個參數就是this指標要指向的物件
var arr=[10,20];
var sum=add.apply(myobject,arr);
複製程式碼
程式碼如下:
var bind=function(object,
if(object.attachEvent){//IE瀏覽器
object.attachEvent("on" type,(function(){
return function(event){
window.event.cancelBubble= true;//停止時間冒泡
object.attachEvent=[fn.apply(object)];//----這裡我要講的是這裡
//在IE裡用attachEvent增加一個時間綁定以後。
//這裡可以看出我們是把apply的第一個物件也就是this的指向變更給了object所以this.id就變成了
//object.id 可以正常運作了。 >}
})(object),false);
}else if(object.addEventListener){//其他瀏覽器
object.addEventListener(type,function(event){
event. stopPropagation();//停止時間冒泡
fn.apply(this)
});
}
}
bind(document.getElementById("aaa"),"click" ,function(){alert(this.id)});