찾다

 >  Q&A  >  본문

JS의 이 객체

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

입니다.

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

阿神阿神2806일 전701

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

  • 習慣沉默

    習慣沉默2017-05-19 10:28:19

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

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:28:19

    가 가리키는 것은 이를 포함하는 가장 가까운 함수에 의해 결정됩니다.
    함수가 발견되지 않으면 는 전역 개체입니다.
    귀하의 질문에서는 후자입니다. 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. 으아아아
    첫 번째 상황입니다. 🎜 🎜요약하자면: 를 결정하는 데는 일반적으로 두 단계가 포함됩니다. 🎜 <올>
  • 🎜먼저 가 포함된 가장 가까운 함수를 찾으세요.🎜🎜
  • 🎜그런 다음 이 함수가 어떻게 호출되는지 살펴보세요. 자세한 내용은 여기를 참조하세요. 🎜🎜 🎜

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:28:19

    으아악 으아악

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:28:19

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

    으아아아

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

    입니다.

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