前言
最近在看JavaScript设计模式,其中有一些巧妙的函数。所以将部分修改后记录在此,顺便加上自己写出的一些好玩的函数。方便大家和自己以后使用。下面来一起看看。
一、apply实现call
二、apply实现bind
三、实现函数柯里化
用法
var add = function () {
var sum = 0
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i]
}
return sum
}.currying()
add(2) //并未求值
add(3,3) //并未求值
add(4) //并未求值
console.log(add()) //12
严格模式不能使用arguments.callee
,稍微改一下
四、实现函数反柯里化
用法
var push = Array.prototype.push.uncurrying()
var obj = {}
push(obj,'嘿')
console.log(obj) //{0: "嘿",length: 1}