JavaScript进阶-第4天了解函数中this在不同场景下的默认值,动态指定函数this的值,提升代码封装的灵活度。•能够区分不同场景下函数中this的默认值•知道箭头函数的普通函数的区别,掌握箭头函数的使用•能够动指定函数中this的值•了解基于类的面向对象的实现语法this了解函数中this在不同场景下的默认值,知道动态指定函数this值的方法。默认值普通函数箭头函数封装普通函数普通函数的调用方式决定了this的值,即【谁调用this的值指向谁】注:普通函数没有明确调用者时this值为window,严格模式下没有调用者时this的值为undefined。箭头函数箭头函数中的this与普通函数完全不同,也不受调用方式的影响,事实上箭头函数中并不存在this!箭头函数中访问的this不过是箭头函数所在作用域的this变量。在开发中【使用箭头函数前需要考虑函数中this的值】,事件回调函数使用箭头函数时,this为全局的window,因此DOM事件回调函数不推荐使用箭头函数同样由于箭头函数this的原因,基于原型的面向对象也不推荐采用箭头函数CallapplyBind定义值以上归纳了普通函数和箭头函数中关于this默认值的情形,不仅如此JavaScript中还允许指定函数中this的指向,有3个方法可以动态指定普通函数中this的指向:call总结:call方法能够在调用函数的同时指定this的值使用call方法调用函数时,第1个参数为this指定的值call方法的其余参数会依次自动传入函数做为函数的参数语法:函数.call(this,arg1,arg2……)使用call方法调用函数,同时指定函数中this的值总结:apply方法能够在调用函数的同时指定this的值使用apply方法调用函数时,第1个参数为this指定的值apply方法第2个参数为数组,数组的单元值依次自动传入函数做为函数的参数语法:函数.apply(this,[arg1,arg2]);apply使用apply方法调用函数,同时指定函数中this的值bindbind方法并不会调用函数,而是创建一个指定了this值的新函数注:bind方法创建新的函数,与原函数的唯一的变化是改变了this的值。改变this三个方法总结call:fun.call(this,arg1,arg2,......)apply:fun.apply(this,[arg1,arg2,......])bind:fun.bind(this,arg1,arg2,......)相同点:都可以用来改变this指向,第一个参数都是this指向的对象区别:call和apply:都会使函数执行,但是参数不同bind:不会使函数执行,参数同call传统面向对象的编程序语言都是【类】的概念,对象都是由类创建出来,然而早期JavaScript中是没...