调用函数 funtion 的方法 () 调用、call()调用、apply()调用

首先说下 () 调用、call()调用、apply()调用 三种方式的区别:
区别就是 call 、 apply 可以改变this指向(执行上下文),别的和直接调用没区别

1. 直接调用
function foo(a, b) {
  return a + b;
}

console.log(window.fn(1, 1)) // 2
我们可以把JS中window对象的方法的“window.”省略掉,写成这样:
console.log(fn(1, 1)) // 2
2. 在对象方法里调用
var foo = {
  name: "lokka",
  age: "18",
  message: function() {
    return this.name + this.age;
  }
}

console.log(foo.message()) // lokka18
3. 使用构造函数调用函数
function foo(a, b) {
  this.name = a;
  this.age = b;
}

var client = new foo("lokka", "18");
console.log(client.name + client.age) // lokka18
4. 作为函数方法(call、apply)调用函数
var a = {
  name: "动物园",
}
var b = {
  name: "植物园",
  message: function(a) {
    return this.name + a;
  }
}

console.log(b.message('玫瑰')) // 植物园玫瑰
console.log(b.message.call(a, '熊猫')) // 动物园熊猫
console.log(b.message.apply(a, ['老虎'])) // 动物园老虎
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值