呼叫javascript的方法:1、方法呼叫模式,this此時指向myobject;2、函數呼叫模式,this此時指向window;3、建構器呼叫模式;4、apply呼叫模式。
本教學操作環境:windows7系統、javascript1.8.5版,DELL G3電腦。
呼叫javascript的方法:
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)});
相關免費學習推薦:javascript影片教學
以上是如何呼叫javascript的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!