复杂对象返回值指向新对象) function X() { this .A = ‘ XA ‘ ; return ‘‘ ;
JavaScript 中 this 不是固定不乱的,它会跟着执行环境的转变而转变
严格模式(‘use strict‘)
1.非严格模式下,全局感化域下的this指向window
2.严格模式下,全局感化域下的this指向undefined
‘use strict‘ function X() { console.log(this); } X(); // 严格模式输出undefined,非严格模式输出Window
非严格模式讨论
1.在东西方挪用方法中, this指向挪用它地址要领的东西
var X = { A: ‘XA‘, B: function() { console.log(this.A); } }; X.B();//输出XA
2.在嵌套东西挪用方法中,this指向最终挪用东西
var A = ‘A‘; var X = { A: ‘XA‘, B: function() { console.log(this.A); } }; var B = X.B; B();//输出‘A‘
3.结构函数中this指向由return返回值确定(普通返回值指向东西实例自己,庞大东西返回值指向新东西)
function X() { this.A = ‘XA‘; return ‘‘;//当前情况功效输出XA //return {A:‘RA‘};//当前情况功效输出RA } var Y = new X(); console.log(Y.A)
4.在HTML事件句柄中,,this指向了接收事件的HTML元素
<button onclick="this.style.display=‘none‘">点击消掉</button>
5.apply、call、bind绑按时,this指向第一个参数
var A = {a:‘Aa‘}; var B = {a:‘Ba‘}; function X() { console.log(this.a); } X.call(A,B); // 输出Aa
6.箭头函数的this指向为界说箭头函数的this(等同于上一级this)
var A = ‘A‘; var X = { A: ‘XA‘, //Y: () => {console.log(this.A)}//该情况输出A Y: function() {console.log(this.A)}//该情况输出XA } X.Y();
7.按时器(setTimeout、setInterval)挪用 在按时器中,this指向window
var A = ‘A‘; var X = { A: ‘XA‘, Y: setTimeout(function() {console.log(this.A)}, 1000) } X.Y; //输出A
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32354.html
- 上一篇:seajs入门实例
- 下一篇:都包括四个部分:上下左右;这四部分可同时设置