Node.js中的this关键字
2015-08-23 23:12
711 查看
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
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
相关文章推荐
- leetcode #24 swap nodes in pairs 链表
- 24.Swap Nodes in Pairs
- struct file和struct inode
- Reverse Nodes in k-Group
- node express
- Node.j中path模块对路径的操作
- [Leetcode]Count Complete Tree Nodes
- leetCode 117.Populating Next Right Pointers in Each Node II (为节点添加右指针) 解题思路和方法
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- 用node-webkit把web应用打包成桌面应用
- 25.Reverse Nodes in k-Group (List)
- note.js之 Nodejs+Express4在windows下的配置
- Nodejs积累
- Error (171173): Node from partition Top cannot preserve previous 管脚分配错误
- Nodejs超方便更新方式
- [Node.js] Web Scraping with Pagination and Advanced Selectors
- Reverse Nodes in k-Group
- fedora22搭建node.js服务器环境
- 如何让nodejs同步操作
- 把Nodepad++添加进右键菜单