var leadingThirtysevenList = list.bind(undefined, 37);
Dies ist ein Codeausschnitt, den ich im Handbuch gesehen habe und der beschreibt, was die Funktion bind() tut, wenn sie den zweiten Parameter übergibt, wobei sie undefiniert als Parameter übergibt. Ich habe in einigen Frameworks auch die Praxis gesehen, undefinierte Parameter zu übergeben, konnte jedoch durch Online-Suchen keine vollständigere und klarere Antwort finden. Ich möchte Lehrer bitten, eine detaillierte Antwort zu geben.
你提供的这段代码, 为什么传入undefined和我下面的解释可能是无关的。
我主要说说其他一些框架;比如jquery就会传入undefined作为参数,并且会赋给一个空值。
那是因为js的一个bug问题, 那就是undefined能被重写!!, 是的,你没听错。
至于为什么undefined被重写会很危险呢,看下面的代码:
那你觉得如果你希望之传递第二个参数,第一个参数用默认值或是无所谓,该怎么写?
这段代码只是为了实现函数柯里化调用
ECMAScript5.1 15.3.4.4中有解释, 当传入的第一个参数是null, undefined时, 函数的上下文将指向window (node中是global)
第一个是占位用的,但是用null效果会比undefined好吧。一般个人习惯用null来占位。