wonderfl - build flash online

How Do You Explain 'this'?

9re 9re

add to favorites

Embed

Code Fullscreen

Talk

global にはnumChildrenというプロパティもremoveChildAtというメソッドもありません。
globalはMediaRSSReaderというプロパティしかもっていないはずです。
クロージャの中でthisはglobalなのだからthisをつけた場合は上記のプロパティ以外全てundefinedです。
this をつけなかった場合のスコープはglobalではなく外側のMediaRSSReaderインスタンスをさすのではないでしょうか?そうでなければ_thisを参照することはできないはずです。

  • by bkzen
  • at 2010/08/19 12:30:00

間違えました
>mediaRSSReaderインスタンスをさすのではないでしょうか?
じゃなくて、
この場合はglobalを含むMediaRSSReader のコンストラクタ内を指すのではないでしょうか?
が正しそうです。

  • by bkzen
  • at 2010/08/19 13:24:56

google translate doesnt quite handle these comments well, could you put it in english for the rest of us?

  • by makc3d
  • at 2010/08/19 15:37:07

>why numChildren and this.numChildren differs inside the closure?

the closure doesn't have "numChildren" propety.
the 2nd trace in closure doesn't tell specific scope, so Flash Player look for "numChildren" property in scope chain, and then it find the property in MediaRSSReader's scope.
the 3rd trace tell specific scope as "this", so Flash Player looks for the property in not scope chain but only the closure's scope, as a result Flash Player prints "undefined" .

>why numChildren is same outside and inside?

it's same reason as above


#see also http://www.imajuk.com/blog/archives/2008/04/post_4.html

  • by imajuk
  • at 2010/08/19 16:11:17

@imajuk thanks for the detail explanation!!

  • by 9re
  • at 2010/08/19 22:47:46

Favorite by

makc3d makc3d :

interesting, are private methods accessible

Tags

sectKeywords

Forked

ページの先頭へ戻る