찾다

 >  Q&A  >  본문

javascript - 객체 메소드를 사용할 때 콘솔 결과에 추가 미확인 항목이 있는 이유는 무엇입니까?

Q1 콘솔 출력이 마지막에 2개로 미확정된 이유는 무엇인가요?

으아악

2분기에는 여기에 미지수가 하나 더 있는 것 같습니다

으아악

보충:
문제 소스:
Ruan Yifeng의 JS 표준에 있는 이 키워드
위 코드는 링크 2에 있습니다. (3) 객체 메서드, 마지막 단락

習慣沉默習慣沉默2750일 전815

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

  • 漂亮男人

    漂亮男人2017-05-19 10:34:47

    자동 답변, 이전 도움말 요약:

    Q1
    첫 번째는 정의되지 않았습니다. hello가 functionName으로 간주될 수 있는 메서드를 가리키기 때문입니다. 따라서 이것은 window
    this.p //window.p//첫 번째 선언입니다. 창.p, 할당되지 않음, 값이 차이가 없음this.p; //window.p//首先声明一个window.p,未赋值,值是undifined

    关键是多了一个undifined!
    第二个undefined,前面有个箭头,
    在 m 函数里加一个 return 'test',//"test"
    所以,这个箭头可以看做return后面的值,这里m函数没有return,没有返回值就是undifined
    总结:前面这个箭头,是控制台独有的,命令行调试时没有
    控制台先是执行函数,然后是,输出函数的执行结果(比如再用来 给别的赋值)

    Q2
    第一个undefined,因为hello指向了一个对象,可以看做b,所以this.p; //b.p

    핵심은 미확정이 하나 더 있다는 것! 🎜두 번째 정의되지 않은 항목 앞에 화살표가 있습니다. 🎜m 함수 //"test"에 return 'test'를 추가하세요.🎜그래서 이 화살표는 return 이후의 값으로 간주할 수 있습니다. m 함수 반환 없음, 반환 값이 미정됨🎜🎜요약🎜: 이전 화살표는 콘솔에 고유합니다. 명령줄 디버깅 중에는 아무도 없습니다.🎜콘솔이 먼저 함수를 실행합니다. , 그런 다음 함수 실행 결과를 출력합니다(예: 다른 값을 할당하는 데 사용됨)🎜 🎜🎜Q2🎜🎜 첫 번째는 정의되지 않았습니다. hello는 b로 간주될 수 있는 객체를 가리키기 때문입니다. 따라서 this.p🎜

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-19 10:34:47

    는 마지막 문의 반환 값입니다. m 함수에 반환 "테스트"를 추가해 볼 수 있나요?

    회신하다
    0
  • 黄舟

    黄舟2017-05-19 10:34:47

    개인적으로 첫 번째 undefed는 함수에 반환 값이 없기 때문이고, 두 번째 undefine은 브라우저 디버깅으로 인한 것일 수 있다고 생각합니다. 명령줄을 사용하여 디버그하고 두 번째 undef가 나타나는지 확인해 보세요.

    회신하다
    0
  • 迷茫

    迷茫2017-05-19 10:34:47

    Chrome 브라우저 콘솔을 사용하고 계십니까? 두 번째 정의되지 않은 것은 고유하며 코드와 관련이 없습니다.

    var a = 1을 입력하세요.

    Enter를 누르면 정의되지 않은 항목도 있습니다.

    회신하다
    0
  • 为情所困

    为情所困2017-05-19 10:34:47

    이 메소드의 this 포인터가 a 객체의 메소드 정의를 window 아래의 변수로 변경했습니다. 이때 this는 window 아래에 대한 정의가 없습니다. var hello var P가 이해할 것입니다

    회신하다
    0
  • 黄舟

    黄舟2017-05-19 10:34:47

    1.hello()에는 반환 값이 없습니다.
    2.console.log() 이 함수에는 반환 값이 없습니다.

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:34:47

    추가 질문undefined是js语句本身的值,剩下的就是this.

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