Node.js中,this这个关键字指代哪个对象,有时容易搞混。写个简单的程序测试看看。
function TestA() {
this.v1 = "Monday";
var v2 = "Tuesday";
v3 = "Wednesday";
this.func1 = function() {
console.log("this is " + this);
console.log("v1 is " + this.v1);
};
};
var obj1 = new TestA();
console.log("obj is ", obj1);
console.log("v1 is " + obj1.v1);
console.log("v2 is " + obj1.v2);
console.log("v3 is " + obj1.v3);
console.log("v3 is " + v3);
obj1.func1();
var obj2 = obj1.func1;
obj2();
var obj3 = obj2.bind(obj1);
obj3();
obj2.call(obj1);
输出结果是:
obj is { v1: 'Monday', func1: [Function] }
v1 is Monday
v2 is undefined
v3 is undefined
v3 is Wednesday
this is [object Object]
v1 is Monday
this is [object global]
v1 is undefined
this is [object Object]
v1 is Monday
this is [object Object]
v1 is Monday