欢迎各位兄弟 发布技术文章
这里的技术是共享的
推荐:win7 32位系统下载
有两种方式,一种是直接在新建ps文件时直接设置文件
效果如图
使用 Underscore 的 chain 方法,可以返回一个包装的对象,这个对象里面包含着 Underscore 里面的所有的方法,也就是我们可以直接调用这些方法,完成以后,还会返回这个包装后的对象,这样我们可以继续去调用 Underscore 的方法,这就是链式调用。
现在这里有一个 albums 数组 ... 下面,我们先用 chain 方法去包装一下它 ...
_.chain(albums)
给我们返回来一个包装后的对象 ... 在 _wrapped 属性里面,就是包装的原来的数据 ... __proto__ 里面就是 Underscore 的方法 ...
下面,我们先调用一个 sortBy 这个方法,去给包装后的数据排下顺序,排序的条件,可以使用 releaseYear 这个属性的值 ...
_.chain(albums).sortBy('releaseYear')
回车 .. 返回的还是一个包装后的数据 ... 我们可以继续去调用方法处理它 ...
这里,再用一个 first() 方法,得到排序后的第一个结果 ...
现在,_wrapped 里面,就只剩下 继续革命 这个专辑项目了 ... 因为它是排序之后的第一个结果 ...
下面我们学习几个在 Underscore 里面跟对象相关的一些方法。
keys 这方法可以得到一个对象里面的所有的属性的名字 ... 比如要得到 album 这个对象里的属性名称列表 .. 可以把这个对象作为 keys 方法的一个参数 ...
_.keys(album)
返回的结果是一个数组,数组里面的项目就是在 album 这个对象里面的每个属性的名字 ...
values
如果你想要的是对象里面的所有的属性的值,可以使用 values 方法 ...
_.values(album)
它也会返回一个数组,数组里面的项目就是在 albums 这个对象里面的属性的值 ...
pick
如果你只想要对象里面的指定的几个属性 ... 可以使用 pick 方法去挑选一下 ... 要挑选的是 album 这个对象 ... 然后再去指定一个想要的属性的列表 .. 这里我们只想要的是 title ,还有 artist 这两个属性 ..
_.pick(album, 'title', 'artist')
返回的结果是一个对象,在这个对象里面,会包含我们挑选的几个属性 ...
omit
有时候,我们可能需要有的函数只能被执行一次,比如用这样的函数去初始化一些东西。
创建这样的函数,可以使用 Underscore 的 once 这个方法。
现在我们这里有一个函数叫 fireIntheHole ... 想让它只能被执行一回 ... 用 once 去处理一下 ... 可以给这个一次性的版本的函数起个新名字 .. 叫它 fire ...
var fire = _.once(fireIntheHole)
保存 ... 回到浏览器 .
在控制台上,先执行一次 fire ...
会显示 bomm ...
然后再执行一下它 ...
会返回 undefined ... 再执行 ... 还是会返回 undefined ...
因为 fire 是一次性的函数,才能被执行一回 ...
一个函数在执行以后,再次执行它的时候,你可以设置一下两次执行间隔的时间。这就是 Undersocre 的 throttle 的功能。
比如这里我们有一个函数 ... fireIntheHole ... 我们打算让程序在每次执行这个函数的时候,必须间隔一段时间才行 ... 可以使用 throttle 去处理一下它 ...
可以给这个防止滥用版本的函数起个新名字 ... 叫它 fire ... 然后用 throttle ... 第一个参数是要处理的函数的名字 ... 这里就是 fireIntheHole ... 第二个参数是等待的时间,也就是两次执行这个函数中间隔的时间 ... 单位是毫秒 ... 这里设置成 3000 毫秒 ...
var fire = _.throttle(fireIntheHole, 3000);
这样执行 fire 之后 ... 才次再想去执行 fire ,只有等待 3 秒以后才行。
保存 ...
到浏览器上试试 ...
先执行一次 fire ... 然后再继续去执行它 ... 你会发现,第一次执行以后,再次执行它的时候,只有等待一会儿,才会起作用。