傳參
不傳參數(shù)時
this默認(rèn)指向window
call接受散的數(shù)據(jù),如果是數(shù)組視為一條數(shù)據(jù)
apply只能是數(shù)組
bind接受散的數(shù)據(jù),如果是數(shù)組視為一條數(shù)據(jù)
執(zhí)行問題
call和apply都會主動執(zhí)行
bind不會主動執(zhí)行
修改調(diào)用函數(shù)
this指向的對象,調(diào)用函數(shù)的實參依次寫在后面
任意對象的原型上的方法,要取這個方法的調(diào)用者,直接
this取
字符串可以解析字符串
setTimeOut('fn(1, 2, 3)', 1000);
時間一到就把字符串 去掉 函數(shù)又是立即執(zhí)行的
兼容bind方法 (IE8 及其一下不支持bind方法)
// 沒有bind方法才調(diào)用
if (!Funtion.prototype.bind) {
Function.prototype.bind = function () {
// 拿到修改this指向的對象
var bindThis = arguments[0];
// 拿到后面的所有參數(shù)
var arg = Array.prototype.slice.call(arguments, 1);
// 拿到調(diào)用者
var that = this;
return function () {
that.apply(bindThis, arg);
}
}
}