Maison  >  Article  >  interface Web  >  Comment appeler la méthode javascript

Comment appeler la méthode javascript

coldplay.xixi
coldplay.xixioriginal
2021-04-19 14:23:587293parcourir

Méthodes d'appel de JavaScript : 1. Mode d'appel de méthode, cela pointe vers myobject à ce moment ; 2. Mode d'appel de fonction, cela pointe vers window à ce moment ; .

Comment appeler la méthode javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur DELL G3.

Méthode pour appeler javascript :

1 : Mode d'appel de méthode

Veuillez noter que cela pointe vers mon objet en ce moment .

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

2 : Mode d'appel de fonction

Veuillez noter que cela pointe vers window

/*函数调用模式*/
    
    var add=function(a,b){
        alert(this)//this被绑顶到window
            return a+b;
        }
    var sum=add(3,4);
    alert(sum)

3 : Modèle d'appel du constructeur

Le livre Essence of JavaScript Language recommande d'abandonner cette méthode. Parce qu'il existe une meilleure façon. Non présenté ici. Je le publierai la prochaine fois que je bloguerai.

ajoutera un lien ici.

/*构造器调用模式  摒弃*/
    
    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 : appliquer le mode d'appel

== Nous pouvons examiner une instance d'application plus utile. Regardez le code en bas.

/*apply*/
    //注意使用了上面的sum函数
    //与myobject
    //这中调用方式的优点在于可以指向this指向的对象。
    //apply的第一个参数就是this指针要指向的对象
    var arr=[10,20];
    var sum=add.apply(myobject,arr);
    alert(sum);

Voir l'application réelle de cette application. bind Il s'agit d'une fonction qui lie le temps

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)});

Recommandations d'apprentissage gratuites associées : tutoriel vidéo javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn