函数也是对象,每个函数都有自己的方法。
e.g。
var jane = {
name:'Jane',
sayHelloTo:function(name)
{
'use strict';
console.log(this.name+' say hello to '+name);
}
}
1.call
Function. prototype. call( thisValue, arg1?, arg2?, …)
例子如下:
//调用方法
jane.sayHelloTo("Grant");
jane.sayHelloTo.call(jane,"Grant");
var func = jane.sayHelloTo;
func.call(jane,"Grant")
2.apply
Function. prototype. apply( thisValue, argArray)
jane.sayHelloTo("Grant");
jane.sayHelloTo.apply(jane,["Grant"]);
var func = jane.sayHelloTo;
func.apply(jane,["Grant"])
3.bind
Function.prototype.bind(thisValue,arg1?,….,argN?)
function func()
{
console.log('this is :'+this);
console.log('arguments is '+Array.prototype.slice.call(arguments));
}
var bound = func.bind('abc',1,2);
bound.apply();