call/apply/bind

使用 call() 和 apply()

call 和 apply是 Function 对象的原型方法,它们能够将特定函数当作一个方法绑定到指定对象上并进行调用。具体用法如下:

function.call(thisobj, args... ) 
function.apply(thisobj, args) 

其中参数 thisobj 表示this指定的对象,参数 args 表示要传递给被调用函数的参数。 call()方法只能接收多个参数列表, 而 apply()只能接收一个数组或者伪类数组,数组元素将作为参数传递给被调用的函数。

//定义一个add 方法
    function add(x, y) {
        return x + y;
    }

    //用call 来调用 add 方法
    function myAddCall(x, y) {
        //调用 add 方法 的 call 方法
        return add.call(this, x, y);
    }

    //apply 来调用 add 方法
    function myAddApply(x, y) {
        //调用 add 方法 的 applly 方法
        return add.apply(this, [x, y]);
    }

    console.log(myAddCall(10, 20));    //输出结果30
  
    console.log(myAddApply(20, 20));  //输出结果40

使用 bind()

用来把函数绑定到指定对象上。

function.bind(thisArg [, arg1[, arg2 [, argN]]])

1.function:必需参数, 一个函数对象。 2.thisArg:必需参数,this关键字可在新函数中引用的对象。 3.arg1[, arg2[, argN]]:可选参数,要传递到新函数的参数的列表。

var checkNumericRange = function (value) { 
    if (typeof value !== 'number'){
        return false;
    }else{
        return value >= this.minimum && value <= this.maximum;
    }
}
var range = { minimum: 10, maximum: 20 };
var boundCheckNumericRange = checkNumericRange.bind(range); 
var result = boundCheckNumericRange (12); 
document.write (result); //true

 

转载于:https://www.cnblogs.com/lanshu123/p/10566558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值