w.r.t a divと呼ばれるthis
ポインタのスコープまたは可視性は、そのネストされた機能ではなく、意図された機能に制限されます。javascriptの「this」ポインタの範囲が制限されているのはなぜですか?
しかし、その関数のすべてのローカル変数は、ネストされた関数に表示されている - これはなぜdiv要素に<function name>(this)
で関数を呼び出す経由this
ポインタを取得... ??起こるん - これもthis
を意味doesntのまた、要するに<function name>
内のローカル変数である指摘し、ここtst1 function
this
変数で私を混同コード..
<html>
<script type="text/javascript" >
function tst1(){
setTimeout(
function(){
alert(this.id)
}, 2000)
}
function tst2(){
var elem = this
setTimeout(
function(){
alert(elem.id)
}, 2000)
}
</script>
<style type="text/css">
.test{
margin: 40px 100px;
background-color: green;
width: 200px;
line-height: 40px;
text-align: center;
height: 40px;
}
</style>
<div id="fooBar" class="test" onclick="tst1.call(this)"> Emily Rossum</div>
<div id="chickenRun" class="test" onclick="tst2.call(this)"> Emily Rossum</div>
</html>
はnull
が、地元のVARされますその関数のiableは、tst2
のようにネストされた関数に表示される必要があります。
からsetTimeout
経由tst1
とtst2
が返された後も - 両方の機能の閉鎖ではありませんか?もしそうなら、親関数内の変数はネストされた関数内で可視であるべきですか?
、親関数の中で__references__のように(私は 'this'を含むと思います)、入れ子になってアクセス可能でなければなりません。 –
@VivekChandra it'sすべての関数が 'this 'を持っているので、あなたは常に現在の関数の' this'を要求しています。どんな地方でも同じです。外側と内側の関数が同じ名前の地方を持つ場合、外側の関数には決してアクセスできず、内側の関数だけにアクセスすることはできません。 – JaredPar
urの前のコメントの後半は私の疑問を解決しました..ありがとう.. –