2013-02-16 7 views
-3

JavaScript 함수는 전역 객체 자체에 정의 된 특정 객체에 연결되어 있습니까?이 객체는 객체의 거의 모든 객체에 함수를 사용할 수 있기 때문에이 객체에 포함되어 있는지 여부를 묻는 질문을 던집니다. 함수를 할당 할 수도 있습니다. 원하는 모든 객체에 대한 참조는 함수 자체가 다른 곳에 저장되고 다른 객체 메소드에 할당된다는 것을 의미합니다.JavaScript 함수가 혼란 스럽습니다.

저를 고치세요. 저는 JavaScript를 처음 사용하고 있습니다 만, 일부는 확장 된 JavaScript가 있습니다.

나는 현재 컨텍스트 코드를 참조하는 데 사용되는이 키워드의 사용법을 알고 있습니다.

+0

와 나는 그 함수는 스택 오버플로에 게시 할 때 – user2019110

+4

더 나은 제목으로 질문을 게시하시기 바랍니다 불리는 방법에 따라 달라집니다 알고있다. –

+1

참조하는 코드가 보이지 않아 답변을 드릴 수 없습니다. 코드를 입력하십시오. –

답변

2

함수는 아무 것도 붙이지 않지만 실행시에는 어떤 객체에 this이 바인딩 된 컨텍스트에서 수행됩니다 (ES5 엄격 모드 제외, this은 때로는 정의되지 않음). this 개체

그것이 개체의 구성원, 또는 함수 여부 등 callapply 또는 사용하는 경우에이, 함수 호출 방법의 제품을 말한다.

var obj = { 
    x: 20, 
    fn: function() { 
    console.log(this.x); 
    } 
}; 
obj.fn(); // prints 20 as `this` will now point to the object `obj` 

var x = 10; 
var fn = obj.fn; 
fn(); // prints 10 as `this` will now point to the global context, since we're invoking the function directly 

var newObj = { 
    x: 30 
}; 
fn.call(newObj); // prints 30 as `this` points to newObj 
fn.apply(newObj); // same as the above, but takes an the functions arguments as an array instead of individual arguments 
+0

당신이 내 영혼을 구했을 때 매우 감사드립니다. – user2019110