深圳外贸网站定制,湘潭网站建设 磐石网络优质,电商公司有哪些,整形网站整站源码this是js中的一个关键字#xff0c;在不同的场合使用#xff0c;this的值会发生变化#xff0c;下面我将详细的介绍this在函数中的各种指向。
在方法中#xff0c;this表示该方法所属的对象。 如果单独使用#xff0c;this表示全局对象。 在函数中#xff0c;this表示全…this是js中的一个关键字在不同的场合使用this的值会发生变化下面我将详细的介绍this在函数中的各种指向。
在方法中this表示该方法所属的对象。 如果单独使用this表示全局对象。 在函数中this表示全局对象。 在函数的严格模式下this是未定义的(undefined)。 在事件中this表示绑定事件的元素对象。 使用new 构造函数创建对象this就是实例对象 1.作为函数它的this指向是全局变量。作为方法它是window对象的方法 function fn(){ var a123 console.log(this.a) console.log(this) } fn() 2.作为对象内部this当然就是指向对象obj var obj{ var a123 fn:function(){ console.log(this.a) console.log(this) } } obj.fn()
3.new一个实例对象b,等于把函数Fn复制了一份放在对象b对象里面this的指向的就是b对象。 function Fn(){ this.a123 } var bnew Fn() console.log(b.a)
4.返回值是一个对象时this指向的就是返回的对象如果返回值不是一个对象那么this指向函数的实例
//构造函数中有返回值的情况。 function fn(){ this.a123 return {} } var bnew fn() console.log(b.a)
function fn(){ this.a123 return 1 } var bnew fn() console.log(b.a) 5.返回值是null的特殊情况 function fn(){ this.a123 return null } var bnew fn() console.log(b.a) JavaScript异步任务的微任务和宏任务
宏任务通常指与浏览器渲染相关的任务
常用的宏任务有SetTimeout、SetInterval等等 SetTimeout延时器用法 let blue 我是什么颜色 let outTimer setTimeout(function() { console.log(blue) // 两秒种后控制台打印 clearTimeout(outTimer) // 关闭延时器 }, 2000)
SetInterval定时器用法 let money 1 let interTimer setInterval(function() { console.log(k) // 若不关闭指定时间无限循环执行 if (k 5) clearInterval(interTimer) }, 2000)
微任务一般是指不与主线程任务同步执行的任务常用微任务Promise.then(经常用到的典型例子)、Object.observe、MutationObserver等
Promise 的创建 let PUA function(val) { return new Promise((resolve, reject) { if (val 1) resolve(成功) else reject(失败) }) } console.log(PUA(1)) // 值与 if 匹配会返回成功
Promise 的 .then() 方法 let PUA function(val) { return new Promise((resolve, reject) { if (val 1) resolve(成功) else reject(失败) }) } PUA(1).then((val) { console.log(val) console.log(成功后打印) }) 执行顺序是同步任务 微任务 宏任务