suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Die Rolle der Javascript-Funktion, die undefiniert als Parameter übergibt

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.

伊谢尔伦伊谢尔伦2779 Tage vor692

Antworte allen(4)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-05-19 10:46:01

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

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

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

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

    Antwort
    0
  • 高洛峰

    高洛峰2017-05-19 10:46:01

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

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

    Antwort
    0
  • 怪我咯

    怪我咯2017-05-19 10:46:01

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

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:46:01

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

    Antwort
    0
  • StornierenAntwort