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 중국어 웹사이트의 기타 관련 기사를 참조하세요!