JavaScript中的this机制
2016-01-30 00:00
731 查看
JavaScript有自己的一套this机制,在不同情况下,this的指向也不尽相同。
全局范围
全局范围使用this指向的是全局变量,浏览器环境下就是window。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
函数调用中
函数调用中的this也指向全局变量。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
对象方法调用
对象方法调用中,this指向调用者。
不过由于this的晚绑定特性,在上例的情况中this将指向全局变量,相当于直接调用函数。
这点非常重要,同样的代码段,只有在运行时才能确定this指向
构造函数
在构造函数内部,this指向新创建的对象。
显式设置this
使用Function.prototype的call或者apply方法是,函数内部this会被设置为传入的第一个参数。
js中的this关键字详解
JS中的this变量的使用介绍
javascript运行机制之this详细介绍
javascript中的self和this用法小结
js this函数调用无需再次抓获id,name或标签名
Javascript学习笔记之 函数篇(二) : this 的工作机制
深入理解Javascript中this的作用域
JS函数this的用法实例分析
关于js里的this关键字的理解
全局范围
console.log(this); //全局变量
全局范围使用this指向的是全局变量,浏览器环境下就是window。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
函数调用中
function foo() { console.log(this); } foo(); //全局变量
函数调用中的this也指向全局变量。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
对象方法调用
var test = { foo: function () { console.log(this); } } test.foo(); //test对象
对象方法调用中,this指向调用者。
var test = { foo: function () { console.log(this); } } var test2 = test.foo; test2(); //全局变量
不过由于this的晚绑定特性,在上例的情况中this将指向全局变量,相当于直接调用函数。
这点非常重要,同样的代码段,只有在运行时才能确定this指向
构造函数
function Foo() { console.log(this); } new Foo(); //新创建的对象 console.log(foo);
在构造函数内部,this指向新创建的对象。
显式设置this
function foo(a, b) { console.log(this); } var bar = {}; foo.apply(bar, [1, 2]); //bar foo.call(1, 2); //Number对象
使用Function.prototype的call或者apply方法是,函数内部this会被设置为传入的第一个参数。
您可能感兴趣的文章:
javascript中onclick(this)用法介绍js中的this关键字详解
JS中的this变量的使用介绍
javascript运行机制之this详细介绍
javascript中的self和this用法小结
js this函数调用无需再次抓获id,name或标签名
Javascript学习笔记之 函数篇(二) : this 的工作机制
深入理解Javascript中this的作用域
JS函数this的用法实例分析
关于js里的this关键字的理解
相关文章推荐
- JS排序方法(sort,bubble,select,insert)代码汇总
- JavaScript基础—插曲02
- JavaScript基础—插曲
- JavaScript基础—dom,事件
- JavaScript基础—闭包,事件
- JS的跳转
- JavaScript基础插曲—获取标签,插入元素,操作样式
- JavaScript
- js中的prototype和__proto__
- 旧知识的巩固,js多维数组的for定义,js自定义键值数组的定义
- 加入JavaScript 定时器开发俄罗斯方块模式的2048项目
- 双色球、大乐透、3D精选版!祝君好运(Javascript)
- js图片跑马灯效果
- JSP(三)JSTL表达式
- JavaScript世界的一等公民 - 函数
- JavaScript的定义及语法
- javascript的学习整理(二)
- javascript中的匀速运动(两种方式)
- JavaScript设计模式学习笔记2
- js阻止表单提交默认行为的两种方式