zoukankan      html  css  js  c++  java
  • JS中apply与call的含义与区别

    JavaScript中,apply()与call()的含义一样,均为改变调用函数中的this指向。
    其中apply()与call()的第一个参数表示所要指向的对象,若调用函数无参数可不写,则默认为window。
    第一个参数后的参数表示调用函数的参数,其中apply()第一个参数后面的参数为一个数组,call()第一个参数后面为0或多个参数。

    例:

     1 window.x = 100;
     2 
     3 
     4 var obj = {};
     5 obj.x = 1;
     6 obj.test = function(a) {
     7     alert(this.x + 20 + a);
     8 }
     9 
    10 
    11 var abc = {};
    12 abc.x = 2;
    13 abc.test = function() {
    14     alert(this.x + 30 + a);
    15 }
    16 
    17 
    18 obj.test(10);                 // 结果为31,this指向obj
    19 obj.test.call(window, 10);         // 结果为130,this指向window
    20 obj.test.call(abc, 10);         // 结果为32,this指向abc
    21 
    22 
    23 obj.test.apply(window, [10]);    // 结果为130,this指向window
    24 obj.test.apply(abc, [10])        // 结果为32,this指向abc
  • 相关阅读:
    2021广东省强网杯WriteUp
    2021 数字四川创新大赛WriteUp
    2021 陇剑杯wp
    2021 羊城杯WriteUP
    如何翻安全四大顶会的文章
    2021 祥云杯 wp
    codeql初探
    sqlmap应用
    sql注入2
    sql注入
  • 原文地址:https://www.cnblogs.com/wuyuchang/p/3903678.html
Copyright © 2011-2022 走看看