JS的this关键字
2017-01-18 15:48
134 查看
一般而言,在Javascript中,this指向函数执行时的当前对象。值得注意,该关键字在Javascript中和执行环境,而非声明环境有关。当没有明确的执行时的当前对象时,this指向全局对象window。
先看一下以下代码alert出来是什么
出现的是Bob,因为setTimeout()执行对象是window对象,所以window下面的name就是”Bob”了!
再看一个例子
this关键字虽然是在someone.showName中声明的,但运行的时候是other.showName,所以this指向other.showName函数的当前对象,即other,故最后alert出来的是other.name!
你可能也能理解成show是window对象下的方法,所以执行时的当前对象时window。但局部变量引用的函数上,却无法这么解释:
看一个高级一点
4000
的
现在应该对this关键字有大概的认识了吧
先看一下以下代码alert出来是什么
var name = "Bob"; var person ={ name : "Tom", showName : function(){ alert(this.name); }, waitShowName : function(){ setTimeout(this.showName, 1000); } }; person.waitShowName();//Bob
出现的是Bob,因为setTimeout()执行对象是window对象,所以window下面的name就是”Bob”了!
再看一个例子
var someone = { name: "Bob", showName: function(){ alert(this.name); } }; var other = { name: "Tom", showName: someone.showName } other.showName();//Tom
this关键字虽然是在someone.showName中声明的,但运行的时候是other.showName,所以this指向other.showName函数的当前对象,即other,故最后alert出来的是other.name!
var name = "Tom"; var Bob = { name: "Bob", show: function(){ alert(this.name); } } var show = Bob.show; show(); //Tom
你可能也能理解成show是window对象下的方法,所以执行时的当前对象时window。但局部变量引用的函数上,却无法这么解释:
var name = "window"; var Bob = { name: "Bob", showName: function(){ alert(this.name); } } var Tom = { name: "Tom", showName: function(){ var fun = Bob.showName; fun(); } } Tom.showName();//window
看一个高级一点
4000
的
var name = "Bob"; var nameObj ={ name : "Tom", showName : function(){ alert(this.name); }, waitShowName : function(){ var that = this; setTimeout(function(){ that.showName(); }, 1000); } }; nameObj.waitShowName(); //Tom
现在应该对this关键字有大概的认识了吧
相关文章推荐
- Js全局和局部变量_this关键字_《没有控件的ASPDONET》
- 一个对于js this关键字的问题
- JS的this关键字
- js中的this关键字
- JS中的this关键字
- Js中的this关键字
- 变量对象,作用域链,闭包,匿名函数,this关键字,原型链,构造器,js预编译,对象模型,执行模型,prototype继承
- [妙味JS基础]第二课:for应用、this关键字
- js中的this关键字
- 一个对于js this关键字的问题
- js——this关键字
- JS的this关键字
- 在XSLT的js方法中使用this关键字得不到想要的结果
- 关于js中的this关键字
- 看到论坛上的一个对于js this关键字的问题,比较有代表性
- JS中this关键字
- Js全局和局部变量_this关键字_《没有控件的ASPDONET》
- js中的this关键字详解
- js的this关键字
- JS中this关键字的使用