一、call(),apply()
call()方法调用一个函数,其具有一个指定的this和一个参数列表。
注意:该方法的作用和apply()方法类似,只有一个区别,就是call()方法接受的是若干个参数的列表,而apply()接受的是一个包含多个参数的数组。
二、bind()
bind()方法创建一个新的函数, 当这个新函数被调用时其this置为提供的值,其参数列表前几项置为创建时指定的参数序列。
有这么几个特征:
- 指定this
- 创建新的函数(不立即执行)
而call(), apply()是立即执行。
例:
var x = 10
var module = {
x: 20,
getX: function(){ return this.x}
}
module.getX() //20
var retrieveX = module.getX
retrieveX.call() //10,默认为global
retrieveX.call(module) //20
var boundGetX = retrieveX.bind(module)
boundGetX() //20
retrieveX.bind(module)() //20
\
网友评论