考虑以下JS对象,它有:
当在对象创建期间立即打印Pipe.x的值时,由于某种原因,Pipe.x为$ ./bin/ll_gA908gs0
!
true
0,a,0
0,a,0
0,a,0
0,a,0
4
0,a,0
但是当调用Py()时,在对象之后,已创建对象,值为Pipe.x是100,因为它应该是第一个。
undefined
我是否缺少任何JS对象属性,这使得Pipe.p()打印未定义且P.y()打印100?
答案 0 :(得分:5)
this
上下文取决于它的调用方式。
当你调用Pipe.y()时,它等同于obj.method(),而this
将指向obj,在本例中为Pipe。
当p作为IIFE执行时,它被设置为窗口并且窗口上没有x