javascript - Js에서 이에 대한 질문
为情所困
为情所困 2017-07-05 10:37:50
0
5
990
으아아아

이 질문과 관련하여 js의 이것이 호출하는 사람을 가리키는 것이 아닌지 알고 싶습니다. cl에서 이것이 처음 호출될 때 왜 여전히 o 객체 대신 창을 가리키나요? 쓸데없는거 알아call틀렸을지도 모르지만 왜 틀렸어?
두 번째는 왜 논쟁을 가리키는 걸까요?

동시에 nodejs에서 실행될 때 이 코드의 첫 번째 출력이 비교되지 않는 이유는 무엇입니까?

为情所困
为情所困

모든 응답(5)
巴扎黑
  1. 함수 이름을 사용하여 직접 호출합니다. 몇 개의 레이어를 포장해도 호출자는 window입니다.

  2. 대괄호 연산자인 대괄호 연산자는 객체 값 연산이기 때문에 어떤 의미에서는 이를 가리키는 점.运算符的,所以这里在形式上其实可以类比成arguments.0(),你看,这不就是arguments来调用了这个函数了嘛,所以运行的时候this과 동일할 수 있습니다.

学霸

이 포인터는 선언될 때 결정되지 않지만 호출될 때 정의됩니다.

  1. 일반 함수 호출, 이는 전역 개체이거나 정의되지 않음

  2. 객체의 메소드로서는 이것이 바로 그 객체

  3. 새로운 표현, 이것은 이 함수로 프로토타입된 새로 생성된 객체입니다

  4. 이를 지정하려면 적용/호출을 사용하세요

  5. 바인딩을 사용하여 이 문제를 해결하세요

  6. 이벤트 처리 함수에서 이는 이벤트를 트리거하는 현재 DOM 요소입니다(event.currentTarget)

도움이 될지 모르겠네요

扔个三星炸死你

이 질문에 관한 한.

  1. o.show()가 실행되면 show 함수 범위에서 사용되는 이는 o를 가리킵니다.
    하지만 사실 fn()은 내부에서 호출되고 fn은 o에 의해 호출되지 않으며 o.fn이 없습니다... 상대적으로 낮은 원칙은 함수 호출 지점 앞에 있는 사람이 함수에서 이 역할을 한다는 것입니다. 이것이 기본 창이어야 합니다.

  2. arguments[0] ==> arguments.0
    배열도 객체이고 [] 호출은 .과 동일하므로 이것이 인수입니다

  3. 노드는 모듈식이라 전역을 가리키고, var 선언시 브라우저처럼 윈도우 호출이 없습니다. node.js에는 그러한 메커니즘이 없습니다.

巴扎黑

으아악

我想大声告诉你

o.show()this指向o,但和本题无关。
o.show()中的fn标识符解析得到一个引用类型(内部类型),其base属性(本题中值为show()方法的活动对象)即是this的指向。因为活动对象返回null,所以this指向null,从而指向了window
arguments[0]()arguments[0]同样返回一个引用类型,其base属性的值为arguments,所以this指向arguments

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿