- apply() 方法调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。
- bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。
- call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。
var name = 'a', age = 0, type = 'A'
function fn () {
console.log( this.name,'年龄是 ', this.age, '血型是 ', this.type );
}
var y = {
name: 'YMAN',
age: 25,
type: 'B',
fn: fn
}
fn()
fn.call(y)
fn.apply(y)
fn.bind(y)()
- 传参:call( )方法的作用和 apply( ) 方法类似,区别就是call( )方法接受的是参数列表,而apply( )方法接受的是一个参数数组。
var name = 'a', age = 0, type = 'A'
var x = {
name: 'XMAN',
age: 24,
type: this.type
}
function todo (para1, para2) {
console.log(this.name,'年龄是:', this.age, '血型是:', this.type, '爱好:', para1, para2)
}
todo('篮球', '足球')
todo.call(x, '篮球', '足球')
todo.call(x, ['篮球', '足球'])
todo.apply(x, '篮球', '足球')
todo.apply(x, ['篮球', '足球'])
todo.bind(x, '篮球', '足球')()