国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js函數調用常用方法詳解

2024-05-06 14:20:44
字體:
來源:轉載
供稿:網友
來源 javascript語言精粹。這不是書上的源代碼。
js的函數調用會免費奉送兩個而外的參數就是 this 和 arguments 。arguments是參數組,他并不是一個真實的數組,但是可以使用.length方法獲得長度。
書上有說4中調用方式:
方法調用模式
函數調用模式
構造器調用模式
apply調用模式

下面我們來看看一些實例更好理解。
1:方法調用模式
請注意this此時指向myobject。
代碼如下:
/*方法調用模式*/
var myobject={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()

2:函數調用模式
請注意this此時指向window。
代碼如下:
/*函數調用模式*/
var add=function(a,b){
alert(this)//this被綁頂到window
return a+b;
}
var sum=add(3,4);
alert(sum)

3:構造器調用模式
javascript語言精粹一書建議摒棄這中方式。因為有更好的方式。這里先不介紹。下次發表博文的時候貼出來。
會在這里加一個連接。
代碼如下:
/*構造器調用模式 摒棄*/
var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa");
alert(qq.get_status());

4:apply調用模式
==我們可以來看一個更有用的apply實例。看最下面的代碼。
代碼如下:
/*apply*/
//注意使用了上面的sum函數
//與myobject
//這中調用方式的優點在于可以指向this指向的對象。
//apply的第一個參數就是this指針要指向的對象
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);

看這個apply真正應用。bind這是一個綁定時間的函數。
代碼如下:
var bind=function(object,type,fn){
if(object.attachEvent){//IE瀏覽器
object.attachEvent("on"+type,(function(){
return function(event){
window.event.cancelBubble=true;//停止時間冒泡
object.attachEvent=[fn.apply(object)];//----這里我要講的是這里
//在IE里用attachEvent添加一個時間綁定以后。
//this的指向不是到object對象本身所以。我們綁定的function里的this.id是無法正常工作的。
//但是如果我們用fn.apply(object)
//這里可以看出我們是把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)});
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 文水县| 蕲春县| 武义县| 安宁市| 东乡族自治县| 萨嘎县| 闽清县| 崇阳县| 江口县| 永宁县| 金平| 仁怀市| 丰都县| 珠海市| 常德市| 博兴县| 深州市| 新密市| 平昌县| 朔州市| 崇义县| 罗定市| 西畴县| 嫩江县| 彭泽县| 昌乐县| 海阳市| 泗洪县| 句容市| 乌海市| 宣恩县| 青浦区| 筠连县| 五常市| 茌平县| 蕉岭县| 崇仁县| 永吉县| 定兴县| 营口市| 永康市|