继承

原型继承

html_继承

借用构造函数

html_继承

html_继承

实行结果:

html_继承

组合继承

html_继承

注解:

  1. 有两个定义类的构造函数
  2. 子类(构造函数中)借用构造函数调用父类构造器,在使用prototype定义父类(一定要设置constructor

定义函数的方式

html_继承

html_继承

函数声明和函数表达式的区别

html_继承

函数中的this

1.函数中的this           window

2.方法中的this           调用方法的对象  

3.构造函数中的this    通过构造函数创建的对象

4.事件处理中的this    触发事件的对象

5.定时器执行的function中的this    window

html_继承

 

改变this的方法

callapplybind(不调用函数,但改变内部的this

ECMAScript规范为所有函数都包含两个方法(这两个方法非继承而来), call  apply 。这两个函数都是在特定的作用域中调用函数,能改变函数的作用域,实际上是改变函数体内 this 的值

语法

定义

说明

call(thisObjObject)

调用一个对象的一个方法,以另一个对象替换当前对象。

call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象.如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj

apply(thisObj[argArray])

应用某一对象的一个方法,用另一个对象替换当前对象。

如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray thisObj 任何一个参数,那么 Global 对象将被用作 thisObj 并且无法被传递任何参数

区别

  • 参数不同, apply 传入的是一个参数数组,也就是将多个参数组合成一个参数数组, call 从第二个参数开始依次传入.
  • apply 可以直接将当前函数的arguments对象作为apply的第二个参数传入

call apply 最大的好处:方便我们解耦,对象不需要和方法有任何的耦合性,能使我们写出更好的面相对象程序。

Apply

让数组的每一项做为方法的参数

html_继承

在伪数组使用数组的方法

html_继承

对象内部使用定时器的this

setInterval(function(){}.bind(obj),150)

事件处理函数中的this

Btn.onclick = function (){}.bind(obj);

函数对象的成员

html_继承

函数做为参数

html_继承

函数作为返回值

html_继承

html_继承

html_继承

相关文章:

  • 2021-07-05
  • 2021-09-15
  • 2021-10-03
  • 2021-11-22
  • 2021-07-30
  • 2021-09-05
  • 2021-10-10
  • 2022-12-23
猜你喜欢
  • 2021-11-14
  • 2021-10-23
  • 2021-06-30
  • 2021-11-27
  • 2021-10-20
相关资源
相似解决方案