zoukankan      html  css  js  c++  java
  • apply和call

    方法定义

    call方法: 
    语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 
    定义:调用一个对象的一个方法,以另一个对象替换当前对象。 
    说明: 
    call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
    如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 

    apply方法: 
    语法:apply([thisObj[,argArray]]) 
    定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
    说明: 
    如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
    如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

    2、实例
    1.
    Array.prototype.join.call('hello','-');
    返回结果: "h-e-l-l-o"
    Array.prototype.join.apply('hello','-');
    返回结果:Uncaught TypeError: CreateListFromArrayLike called on non-object
    2.
    var a = [1,2,3];
    var b = [4,5,6];
    Array.prototype.push.call(a,b);
    返回结果:4
    a:[1, 2, 3, Array(3)]
    b:[4, 5, 6]
     
    合并两个数组:
    var a = [1,2,3];
    var b = [4,5,6];
    Array.prototype.push.apply(a,b);
    返回结果:6
    a:[1, 2, 3, 4, 5, 6]
    b:[4, 5, 6]
    3.
    var ff = {setName:function(name){
    console.log(name);
    }}
    var gg;
    ff.setName.call(gg,'賬單');
    返回结果:
    賬單
     
  • 相关阅读:
    正则表达式入门(3)
    正则表达式入门(2)
    正则表达式入门
    函数的参数传递
    python常用库之random
    插入排序与归并排序
    浅拷贝与深拷贝
    装饰器学习小程序
    Python的“is”与“==”
    Oracle中断中止exp/imp和expdp/impdp数据库导入导出
  • 原文地址:https://www.cnblogs.com/zjy1017/p/7679532.html
Copyright © 2011-2022 走看看