javascript技巧

1、作用域安全的构造函数

function Person(name,age){
if(this instanceof Person){
this.name=name;
this.age=age;
this.getInfo=function (){};
}else{
new Person(name,age);
}
}

```

2、函数柯里化

//使用闭包返回一个函数,函数的参数是外部函数传递+内部自身函数的参数,将内外函数的参数进行了合并。

```

var curFun=curry(fn,1,2,3,4,5);
curFun(); //15
function curry(fn){
var outerArg=Array.prototype.slice.call(arguments,1);
return function (){
var innerArg=Array.prototype.slice.call(arguments);
var args=outerArg.concat(innerArg);
fn.apply(null,args);
};
}
function fn(){
var len=arguments.length;
var sum=0;
for(var i=0;i<len;i++){
sum=sum+arguments[i];
}
return sum;
}