菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育

标题: 谷江涛-20221125-js高级03 [打印本页]

作者: 暴风雨    时间: 2022-11-28 12:49
标题: 谷江涛-20221125-js高级03
一,今日学习内容:
1. 方法过载
                如果方法挂在this上,那么每一个new出来的实例对象都有一份方法的副本,如果new100个实例对象,就有100个方法副本,成为方法过载。
2. 原型与原型链
                2.1 原型:
                        每个函数(特指构造函数),都有一个属性prototype(显式原型)原型,它的值是一个对象,只要往这个对象中添加方法,这些方法都会被new出来的实例对象共享。
                        实例对象,都有一个属性`__proto__`隐式原型(新版本浏览器显示[[prototype]]),等于自己构造函数的显式原型`prototype`
                        原型对象里面,有一个属性叫constructor,指向构造函数自己本身
                        原型的作用:添加共享方法
                2.2 原型链
                        原型prototype本身也是一个实例对象,也有自己的构造函数,他的构造函数是Object,原型prototype也有属性`__proto__`隐式原型,指向Object的显式原型prototype
                        Object的显式原型prototype也是实例对象,也有`__proto__`,指向null
                        Object的prototype上有一个属性constructor,指向构造函数Object自己本身
                        原型链的作用:实例对象去查找方法,先找自己,自己没有,沿着原型链找,找到,就使用,直到找到Object为止,找不到就报错。
3. this指向--7种指向
                1.全局中的this
                2.函数中的this
                3.对象方法中的this
                4.构造函数中的this
                5.定时器的回调中
                6.事件处理函数中
                7.箭头函数
                3.1 修改this的指向
                        1. call()
                                不确定个数的参数,第一个参数是新的this指向,后面的参数按照所需要的实参依次传入
                        2.apply()
                                两个参数,第一个参数是新的this指向,第二个参数为一个数组,数组中传入实参
                        3.bind()
                                可以把一个函数的this绑定到一个目标对象上,然后返回一个新的函数
                                此后,只要调用这个新函数,新函数的this永远指向了绑定的目标对象





欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) Powered by Discuz! X3.4