首頁  >  文章  >  web前端  >  如何呼叫javascript的方法

如何呼叫javascript的方法

coldplay.xixi
coldplay.xixi原創
2021-04-19 14:23:587294瀏覽

呼叫javascript的方法:1、方法呼叫模式,this此時指向myobject;2、函數呼叫模式,this此時指向window;3、建構器呼叫模式;4、apply呼叫模式。

如何呼叫javascript的方法

本教學操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn