JavaScript中的this关键词指向

JavaScript中的this关键词指向

目录

1、es5中的this的指向

2、es6中的this

1、es5中的this的指向

thisJavaScript的一个关键字,他是函数执行过程中,自动生成的一个内部对象,指当前的对象,只在当前函数内部使用。

es5this的指向取决于函数运行时的环境。

没有直接挂载者(或称调用者)的函数中this,非严格模式下指向window,在use strict严格模式下,默认为undefined。以下都是在非严格模式下讨论

var name = 'hello window!'; var obj = { name: 'hello obj!', fn: function() { console.log(this.name); } }; var fn = obj.fn; fn(); // hello window! obj.fn(); // hello obj!

obj.fn()在执行时,fn中的this指向的是当前的调用对象objfn()执行时,this指向的是window对象。

var fn = obj.fn; // 等价于 window.fn = obj.fn; fn(); // 等价于 window.fn();

匿名函数的执行环境是全局的

var name = 'hello window!'; var obj = { name: 'hello obj!', fn: function() { console.log(this.name); // 'hello obj!' return function() { console.log(this.name); // 'hello window!' }; } }; obj.fn()(); 2、es6中的this

es6箭头函数的特点

箭头函数没有自己的this

函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,即外层代码的this引用。

不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

没有arguments对象。如果要用,可以用Rest参数代替。

不可以使用yield命令,因此箭头函数不能用作Generator函数

示例说明,修改上述示例代码中的函数为箭头函数:

// 示例代码1 var name = 'hello window!'; var obj = { name: 'hello obj!', fn: () => { console.log(this.name); // 这里的this指向的外层的this,即window对象,想当于上打印的是console.log(window.name); } }; var fn = obj.fn; fn(); // hello window! obj.fn(); // hello window! // 示例代码2 var name = 'hello window!'; var obj = { name: 'hello obj!', fn: function() { console.log(this.name); // hello obj! return () => { console.log(this.name); // hello obj! // this指向外层的this,即obj对象 }; } }; obj.fn()();

总结:

es5中的this主要看运行的环境,指向的是调用它的对象。

箭头函数中的this是在一开始就固定的,并不受调用对象

到此这篇关于JavaScript中的this关键词指向的文章就介绍到这了,更多相关js的this指向内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    计算机正常运行中死机故障的解决

    计算机正常运行中死机故障的解决,,通常有三个问题,如黑屏、花屏和蓝屏。 故障1:散热 拆卸机箱、使用皮老虎、冷发等工具来清理机箱内的灰尘

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个