오늘 친구가 아래와 같은 코드를 발견했다며 이유를 설명해달라고 했습니다
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return 함수( ){
return this. name;
}
}
alert(object.getNameFunc()()); Node.js는 동적으로 결정되며 이를 호출하는 방법에는 직접적인 관계가 있습니다.
간단히 말하면 함수를 호출할 때 "object.function 이름" 메서드를 사용하면 .(점) 앞의 개체이고, 그렇지 않으면 창입니다.
예를 들어 object.getNameFunc()를 호출하면 getNameFunc 함수 본문의 이 개체가 방금 선언한 개체입니다.
var func = object. getNameFunc;
func();
이때 getNameFunc 함수 본문에서는 이것이 윈도우인데, 같은 함수를 호출하느냐의 차이가 이것의 차이를 결정합니다.
마찬가지로 object.getNameFunc()는 함수 참조를 반환하며 괄호를 추가하면 함수를 실행할 수 있습니다. 실제로는 다음 코드와 동일합니다.
var func = object.getNameFunc( );
alert( func() );
함수 앞에는 "object." 형식이 없으므로 함수 실행 시에는 다음과 같습니다. 창, 결과는 명백합니다.
앞으로 js에 대한 기사를 쓸 예정입니다. 누구나 내 CSDN 블로그 tt361을 팔로우할 수 있습니다.