>  기사  >  웹 프론트엔드  >  자바스크립트 메소드 호출 방법

자바스크립트 메소드 호출 방법

coldplay.xixi
coldplay.xixi원래의
2021-04-19 14:23:587282검색

JavaScript 호출 방법: 1. 메서드 호출 모드는 현재 myobject를 가리킵니다. 2. 함수 호출 모드는 현재 창을 가리킵니다. 3. 생성자 호출 모드를 적용합니다.

자바스크립트 메소드 호출 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, DELL G3 컴퓨터.

메소드 호출 javascript:

1: 메소드 호출 모드

이는 현재 myobject를 가리킨다는 점에 유의하세요.

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

2: 함수 호출 모드

이는 현재 창

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

3: 생성자 호출 모드

책 Essence of JavaScript Language에서는 이 방법을 포기할 것을 권장합니다. 더 나은 방법이 있기 때문입니다. 여기에 소개되지 않았습니다. 다음에 블로그에 올릴 때 포스팅하겠습니다.

여기에 링크를 추가하겠습니다.

/*构造器调用模式  摒弃*/
    
    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*/
    //注意使用了上面的sum函数
    //与myobject
    //这中调用方式的优点在于可以指向this指向的对象。
    //apply的第一个参数就是this指针要指向的对象
    var arr=[10,20];
    var sum=add.apply(myobject,arr);
    alert(sum);

이 적용의 실제 적용을 확인하세요. 바인딩 시간을 묶는 기능입니다

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 비디오 튜토리얼

위 내용은 자바스크립트 메소드 호출 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.