欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

函数 - 为函数绑定对象 - bind《 Underscore 基础 》

在这一章里,我们去学几个 Underscore 里面的跟函数相关的方法。

bind

先来看一下 bind 这个方法。bind 这个词有绑定的意思,你可能在其它的地方也看到过这个词,比如在 jQuery 里面,它的意思就是去绑定事件。不过在 Underscore 这个上下文里面,bind 的意思是为函数绑定一个对象。这样在调用这个函数的时候,在函数的内部,this 这个关键词表示的就是这个对象。

下面,我们去试一下这个方法 ... 先定义一个函数 ... 可以使用函数表达式的方法去定义这个函数 .. (#编辑器) ..

给这个函数起个名字 .. 叫做 nowPlaying  ...  function  ...  在这个函数里面,让它 返回 this 这个关键词 ...

var nowPlaying = function() {
    return this;
}

在下面,我们再去调用这个函数  ...

nowPlaying()

你会发现,这个函数会返回 Window 这个对象 .. 也就是,在这个函数里面,this 这个关键词表示的是 Window 这个对象  ...

我们这里有一个 album 对象  ... (#album)

下面用 bind 方法,把它跟 nowPlaying 这个函数绑到一块儿 ..

nowPlaying 等于 _.bind  ... 第一个参数是绑定的函数 ...  这里就是 nowPlaying 这个函数 .. 第二个参数是要绑定到这个函数上的对象 ...  输入 album  这个对象 ...

nowPlaying = _.bind(nowPlaying, album)

然后再去调用一下这个 nowPlaying  ...   nowPlaying()

现在,这个函数返回的就是用 bind 方法跟它绑定到一块儿的那个 album 对象了。

这样我们再去改造一下 nowPlaying 这个函数 ..  可以让它授受一个参数 ...  username  ...

然后在用 bind 方法绑定的时候,它的第三个参数,就可以是传递给这个函数的参数的值 ...   这里我们可以设置成 'wanghao'

在这个 nowPlaying 的函数里,让它返回一些东西 ..

return username + ',您正在收听的专辑是:' + this.title + ',来自:' + this.artist;

保存 ...  再到控制台上试试 ... 刷新 ..

然后调用 nowPlaying() 这个函数 ...

会返回一串文字  ...  wanghao 是 nowPlaying 的参数值,在用 bind 方法绑定的时候传递进来的 ...  继续革命 是来自 album 对象的 title 属性 ..  Beyond 是 album 里面的 artist 属性的值  ...

普通分类: