zoukankan      html  css  js  c++  java
  • call() apply()

    两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。

    唯一区别是apply接受的是数组参数,call接受的是连续参数。

    1 function add(j, k){
    2     return j+k;
    3 }
    4 
    5 function sub(j, k){
    6     return j-k;
    7 }
     1 add(5,3); //8
     2 add.call(sub, 5, 3); //8
     3 add.apply(sub, [5, 3]); //8
     4 
     5 sub(5, 3); //2
     6 sub.call(add, 5, 3); //2
     7 sub.apply(add, [5, 3]); //2 

    下面说一下关于call和apply的对象继承的用法:

    1     var parent = function(){
    2         this.name = "chen",
    3         this.age = 23
    4     };
    5     var child = {};
    6     console.log(child); //Object{}  空对象
    7 
    8     parent.call(child);
    9     console.log(child); //Object {name: "chen", age: 23}
  • 相关阅读:
    关于 Vue
    HTTP 知识点
    JS 的一些原生属性
    JS知识点-2 通信类
    原生JS知识点
    CSS知识点
    HTML知识点
    关于在Ajax中使用pushstate
    JavaScript 中的 This
    观察者模式
  • 原文地址:https://www.cnblogs.com/colaman/p/6266572.html
Copyright © 2011-2022 走看看