JS의 이 객체
阿神
阿神 2017-05-19 10:26:19
0
4
658

var str="hello";
var obj={
str:"world",
saystr:this.str
};
alert(obj.saystr); //결과는 hello

입니다.

결과가 "world"가 아닌 "hello"인 이유를 알려주세요

阿神
阿神

闭关修行中......

모든 응답(4)
習慣沉默

이 기사는 대부분의 문제를 해결할 수 있습니다.

漂亮男人

가 가리키는 것은 이를 포함하는 가장 가까운 함수에 의해 결정됩니다.
함수가 발견되지 않으면 는 전역 개체입니다.
귀하의 질문에서는 후자입니다. this指向什么,由包含它的最近的一个function决定的;
如果没找到function,那么this就是全局对象。
你的题目中,就是后者。

稍微修改一下代码:

var str="hello";
var obj={
str:"world",
saystr: function() {
     alert(this.str)
}
};
obj.saystr();

就是第一种情况了。

总结一下:确定this通常分两步走:

  1. 先找到包含this的最近的一个function

  2. 然后看这个function

    코드를 약간 수정하세요:
  3. 으아아아
첫 번째 상황입니다. 🎜 🎜요약하자면: 를 결정하는 데는 일반적으로 두 단계가 포함됩니다. 🎜
  • 🎜먼저 가 포함된 가장 가까운 함수를 찾으세요.🎜🎜
  • 🎜그런 다음 이 함수가 어떻게 호출되는지 살펴보세요. 자세한 내용은 여기를 참조하세요. 🎜🎜 🎜
    滿天的星座

    으아악 으아악

    伊谢尔伦

    더 나은 이해를 위해 질문을 다음으로 변환하세요.

    으아아아

    이것이 window 전역 객체를 가리키는 것을 한눈에 알 수 있으므로 obj.saystr의 결과는 hello

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