函数也是对象,每个函数都有自己的方法。
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();