var obj = { x: 81, }; var foo = { getX: function() { return this.x; } } console.log(foo.getX.bind(obj)()); //81 console.log(foo.getX.call(obj)); //81 console.log(foo.getX.apply(obj)); //81
//当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数
var foo = { bar : 1, eventBind: function(){ $(‘body‘).on(‘click‘,function(event) { /* Act on the event */ console.log(this.bar); //1 }.bind(this)); } }
Array.prototype.slice.call({length:3,0:"first",1:"second"})//["first", "second", undefined ]
JavaScript中call、apply、bind、slice的使用
原文:http://www.cnblogs.com/z-sm/p/4840423.html