abo*_*jas 2 javascript node.js javascript-objects
考虑以下JS对象,它具有:
当在对象创建期间立即打印Pipe.x的值时,由于某种原因,Pipe.x是,undefined但是当调用Py()时,在对象之后创建了Object,Pipe.x的值为100,因为它应该是第一位的.
var Pipe = {
x: 100,
p: function(){
console.log('p says x is ' + this.x); // prints y says x is undefined
}(), // call immediately
y: function(){
console.log('y says x is ' + this.x);
}
}
Pipe.y(); // prints y says x is 100
Run Code Online (Sandbox Code Playgroud)
是否有任何JS对象属性我缺少使得Pipe.p()打印undefined和Py()打印100?
该this语境依赖于它是如何被调用.当你调用Pipe.y()时,它等同于obj.method()并将this指向obj,在本例中为Pipe.
当p作为IIFE执行时,它被设置为窗口并且窗口上没有x
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |