14、call、applay

1、每一个函数都包含两个非继承而来的方法:call、applay

  • 这两方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
  • call、applay的用途之一就是传递参数,但事实上,它们真正强大的地方是能够扩充函数赖以运行的作用域
  • 使用call 和 applay 来扩充作用域的最大的好处就是对象不需要与方法有任何的耦合关系
// call 和 applay 最简单的用法,绑定一些函数,传递参数

function sum(a,b){
 return a + b;
}

function call1(a,b){
return sum.call(this,a,b);
}

function apply1(a,b){
return sum.apply(this,[a,b]);
}

console.log(call1(10,20)); // 30
console.log(apply1(20,40)); // 60

// call 和 applay扩充 作用域

window.color = 'red';

var obj = {color:'blue'};

function showColor(){

 console.log(this.color);

}

showColor.call(this); // red

showColor.call(obj); // blue

showColor.apply(this); // red

showColor.apply(obj); // blue

// call 方法的简单模拟 与实现 
// function 方法
function test(a,b){
 return a + b;
}

// 自定义的对象
var o = {};
o.x = 10;
o.y = 20;
o.method = test;
console.log(o.method(o.x,o.y)); // 30
delete o.method;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值