코드는 다음과 같습니다:
var doubling=function(x){
return x*2>}
var obj={
val:100,
};
함수 호출 모드에서는 전역 개체에 바인딩됩니다. 이러한 상황은 객체의 속성과 메서드가 초기화되는 경우에도 반영될 수 있습니다. 이제 ojb에 다음을 추가합니다.
코드 복사 코드는 다음과 같습니다.
var obj={val:100,
prop:function(){
var that=this
document; .write( 'name: '+that+'; type: '+typeof(that)+'
')
return doublling(that.val)
}(),
get_prop: function(){
var that=this;
document.write('name: '+that+'; type: '+typeof(that)+'
')
return doubling(that.val);
},
};
prop는 val 값의 doubling() 연산 결과를 얻기 위해 실행되는 익명 함수를 사용합니다. 함수 호출 모드에서 객체의 get_prop은 메소드 호출 모드입니다.
스크립트가 로드되면 obj의 속성 prop이 초기화되면 "name: [object Window]; type: object"라는 명령문이 출력됩니다. obj.get_prop()를 사용할 때 "name: [object Window]"라는 명령문이 출력됩니다. 개체]; 유형: 개체"가 출력됩니다. "출력. 전자는 함수 본문의 "this"가 전역 변수 창이고 후자는 예상대로 obj 자체임을 나타냅니다.
prop 속성과 get_prop() 메소드의 반환 값을 확인할 수 있습니다. 전자는 window 객체를 곱하여 NaN을 반환하고, 후자는 200과 같습니다.
obj 리터럴 표현식 외에도 new_prop 속성과 new_get_prop() 메서드를 설정할 것으로 예상됩니다. 결과는 이전 기사와 일치하며 메서드 호출 모드는 이를 자체적으로 바인딩합니다.