Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
417 views
in Technique[技术] by (71.8m points)

JavaScript 关于函数柯里化

function curry(func){
    let args=[].slice.call(arguments,1)
    let func_length=func.length
    return function(){
        let newArgs = args.concat([].slice.call(arguments));
        if(newArgs.length<func_length){
            return curry.call(this,func,...newArgs) 
        }
        return func.apply(this,newArgs)
    }
}

看到这段代码,想问一下两个return语句为什么要用.call的形式,直接调用不行吗,这两个this都是指向window的,好像没起到什么作用啊


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

如果这个函数作为某个对象的方法,this指向就会有问题


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...