js代码题

77 阅读1分钟

柯里化

    function curry(fn) {
        let allArgs = []
        return function next() {
            let args = [].slice.call(arguments)
            if(args.length > 0) {
                allArgs.concat(args)
                return next
            }else {
                fn.apply(null, allArgs)
            }

        }
    }

对象的深拷贝

function deepClone(obj){
var newObj= obj instanceof Array ? []:{};
for(var item in obj){
var temple= typeof obj[item] == 'object' ? deepClone(obj[item]):obj[item];
newObj[item] = temple;
}
return newObj;
}

once函数,只执行一次

function ones(func){
var tag=true;
return function(){
if(tag==true){
func.apply(null,arguments);
tag=false;
}
return undefined
}
}

私有变量

function product(){
var name='yuxiaoliang';
this.getName=function(){
return name;
}
}
var obj=new product();