Die Rolle der Javascript-Funktion, die undefiniert als Parameter übergibt
伊谢尔伦
伊谢尔伦 2017-05-19 10:44:01
0
4
672
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.

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(4)
仅有的幸福

你提供的这段代码, 为什么传入undefined和我下面的解释可能是无关的。

我主要说说其他一些框架;比如jquery就会传入undefined作为参数,并且会赋给一个空值。
那是因为js的一个bug问题, 那就是undefined能被重写!!, 是的,你没听错。

至于为什么undefined被重写会很危险呢,看下面的代码:

(function (undefined) {
    let a;
    
    // 如果a没有值则为a赋值.  但因为undefined被重写了,所以这句根本执行不到。
    if (a === undefined) {
        a = 'b';
    }
})(true);
小葫芦

那你觉得如果你希望之传递第二个参数,第一个参数用默认值或是无所谓,该怎么写?

这段代码只是为了实现函数柯里化调用

刘奇

ECMAScript5.1 15.3.4.4中有解释, 当传入的第一个参数是null, undefined时, 函数的上下文将指向window (node中是global)

習慣沉默

第一个是占位用的,但是用null效果会比undefined好吧。一般个人习惯用null来占位。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage