理解Underscore库里的bind和bindAll方法
var func = function beautiful(){ alert(this + ' is beautiful'); }; func();//[object window] is beautiful
var func = function beautiful(){ alert(this + ' is beautiful'); }; func.apply('Internet');//Internet is beautiful
function Developer(skill) { this.skill = skill; this.says = function(){ alert(this.skill + ' rocks!'); } } var john = new Developer('Ruby'); john.says(); //Ruby rocks!
function Developer(skill) { this.skill = skill; this.says = function(){ alert(this.skill + ' rocks!'); } } var john = new Developer('Ruby'); var func = john.says; func();// undefined rocks!
function Developer(skill) { this.skill = skill; this.says = function(){ alert(this.skill + ' rocks!'); } } var john = new Developer('Ruby'); var func = john.says; func.apply(john);//Ruby rocks!
下面的代码要引用underscore库
function Developer(skill) { this.skill = skill; this.says = function(){ alert(this.skill + ' rocks!'); } } var john = new Developer('Ruby'); var func = _.bind(john.says, john); func();// Ruby rocks!
function Developer(skill) { this.skill = skill; this.says = function(){ alert(this.skill + ' rocks!'); } } var john = new Developer('Ruby'); _.bindAll(john, 'says'); var func = john.says; func(); //Ruby rocks!
参考链接:
http://blog.bigbinary.com/2011/08/18/understanding-bind-and-bindall-in-backbone.html
http://www.kankanews.com/ICkengine/archives/110957.shtml
合乎自然而生生不息。。。


浙公网安备 33010602011771号