var str="hello";
var obj={
str:"world",
saystr:this.str
};
alert(obj.saystr); //결과는 hello
결과가 "world"가 아닌 "hello"인 이유를 알려주세요
漂亮男人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
通常分两步走:
先找到包含this
的最近的一个function
;
然后看这个function
이
를 결정하는 데는 일반적으로 두 단계가 포함됩니다. 🎜
<올>
이
가 포함된 가장 가까운 함수
를 찾으세요.🎜🎜
함수
가 어떻게 호출되는지 살펴보세요. 자세한 내용은 여기를 참조하세요. 🎜🎜
🎜伊谢尔伦2017-05-19 10:28:19
더 나은 이해를 위해 질문을 다음으로 변환하세요.
으아아아이것이 window 전역 객체를 가리키는 것을 한눈에 알 수 있으므로 obj.saystr의 결과는 hello
입니다.