首頁  >  文章  >  web前端  >  js函數呼叫常用方法詳解_基礎知識

js函數呼叫常用方法詳解_基礎知識

WBOY
WBOY原創
2016-05-16 17:47:391116瀏覽

來源 javascript語言精粹。這不是書上的原始碼。
js的函數呼叫會免費奉送兩個而外的參數就是 this 和 arguments 。 arguments是參數組,他並不是一個真實的數組,但是可以使用.length方法來獲得長度。
書上有說4中呼叫方式:
方法呼叫模式
函數呼叫模式
建構器呼叫模式
apply呼叫模式

下面我們來看看一些實例更好理解。
1:方法呼叫模式
請注意this此時指向myobject。

複製程式碼 程式碼如下:

/*方法呼叫模式*/


/*方法呼叫模式*/
var myobject ={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()
myobject.inc()

複製程式碼


程式碼如下:


/*函數呼叫模式*/
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)});
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn