찾다

 >  Q&A  >  본문

javascript - js에서 이 문제

JS 초보자님, 문제가 발생하면 먼저 코드를 작성해주세요

으아악

출력 결과가 정의되지 않았습니다.
제 질문은 1입니다. return里面的getNamefunction是不是匿名函数 我现在理解的是匿名函数 那么这个this应该就是指向全局吧?就是window 那为啥不输出john 2.让我更困惑的是,我在调试时候一步步走,走到this.name的时候,this指向的是Object 而当输出完undefined的时候,我在监视那里的this变成了windowthis.name也变成了john 잘 이해가 안 되네요. 도와주세요!

我想大声告诉你我想大声告诉你2763일 전598

모든 응답(3)나는 대답할 것이다

  • typecho

    typecho2017-06-26 10:59:12

    이 문제는 단계별로 살펴봐야 합니다. 먼저 myObject에는 getName이라는 속성이 있고 값은 익명 함수입니다. 현재는 정의되지 않았습니다. alert(myObject.getName()); 으아악

    다시 확장하고 아래 코드를 보세요

    으아악

    object.getName() 메소드는 익명 함수를 반환합니다. 실행 환경은 함수를 기준으로 실행 범위를 가리키므로 이때 window.name은 John입니다.

    lucy를 반환하려면 화살표 함수나 클로저를 생성해야 합니다.
    으아악

    화살표 함수 본문에 있는 이 개체는 사용되는 개체가 아니라 정의된 개체입니다.

    이 포인트 변경 디버깅 문제는 익명 함수의 원래 범위가 window인데 실행되면 myObject가 호출하기 때문에 그 순간에는 myObject를 가리키기 때문입니다.

    회신하다
    0
  • 为情所困

    为情所困2017-06-26 10:59:12

    으아악

    getNamethis 指的是 myObject,因为 getName 直接是 myObject 所调用的,所以这里的 this 指的是 ———— 调用函数的那个对象

    회신하다
    0
  • 为情所困

    为情所困2017-06-26 10:59:12

    myObject.getName()
    보통 함수를 호출하는 사람은 이 함수가 가리키는 대상을 가리킵니다

    회신하다
    0
  • 취소회신하다