第一次在对象内调用时,JS对象属性未定义

时间:2018-04-08 06:44:18

标签: javascript node.js javascript-objects

考虑以下JS对象,它有:

  • x:变量给定值100
  • p:打印x的值,创建后立即调用
  • y:打印x的值,在创建对象后调用

当在对象创建期间立即打印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?

1 个答案:

答案 0 :(得分:5)

this上下文取决于它的调用方式。 当你调用Pipe.y()时,它等同于obj.method(),而this将指向obj,在本例中为Pipe。

当p作为IIFE执行时,它被设置为窗口并且窗口上没有x