理解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

posted @ 2014-04-09 11:35  草珊瑚  阅读(480)  评论(0)    收藏  举报