NodeJS与浏览器中this关键字差异何在?
- 内容介绍
- 文章标签
- 相关推荐
本文共计670个文字,预计阅读时间需要3分钟。
前言+学习过JavaScript的人可能都会遇到这样的困惑:处在不同的环境下,this的指向问题。那么看看下面的代码:
var type=1;function toWhere() { this.type=2; toWhere(); console.log(type);}
你们可能都会这样想:这里声明了一个全局变量type。
前言
学习过JavaScript的人肯定清楚 处在不同环境下this的指向问题。那么看下面的代码
var type = 1 function toWhere(){ this.type = 2; } toWhere(); console.log(type)
你们肯定会这样想:
这里声明了一个全局变量type,当执行type=1的时候,赋值为1。之后toWhere函数调用,看到函数中有this 就去判断this的指向,这里很清楚,this指向了window,this.type=2执行后,全局变量type就赋值为2了。
最后打印全局变量type 结果很明显是2。
打开浏览器验证一下,没问题 一个2明晃晃的在那里。
那么就这样结束了吗?
如果你学过node,现在用nodejs重新执行一下以上代码,你就发现了不一样的地方。
本文共计670个文字,预计阅读时间需要3分钟。
前言+学习过JavaScript的人可能都会遇到这样的困惑:处在不同的环境下,this的指向问题。那么看看下面的代码:
var type=1;function toWhere() { this.type=2; toWhere(); console.log(type);}
你们可能都会这样想:这里声明了一个全局变量type。
前言
学习过JavaScript的人肯定清楚 处在不同环境下this的指向问题。那么看下面的代码
var type = 1 function toWhere(){ this.type = 2; } toWhere(); console.log(type)
你们肯定会这样想:
这里声明了一个全局变量type,当执行type=1的时候,赋值为1。之后toWhere函数调用,看到函数中有this 就去判断this的指向,这里很清楚,this指向了window,this.type=2执行后,全局变量type就赋值为2了。
最后打印全局变量type 结果很明显是2。
打开浏览器验证一下,没问题 一个2明晃晃的在那里。
那么就这样结束了吗?
如果你学过node,现在用nodejs重新执行一下以上代码,你就发现了不一样的地方。

