var leadingThirtysevenList = list.bind(undefined, 37);
这是在手册中看到的一段关于 bind() 函数传入第二个参数时实现的功能的代码段,其中他将 undefined 作为参数传入。在一些框架中也看到过参数传递 undefined 的做法,但是在网上搜索一直没能找到一个比较完整清晰的回答,想请各位老师给个详细的解答。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
你提供的这段代码, 为什么传入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来占位。
你提供的这段代码, 为什么传入undefined和我下面的解释可能是无关的。
我主要说说其他一些框架;比如jquery就会传入undefined作为参数,并且会赋给一个空值。
那是因为js的一个bug问题, 那就是undefined能被重写!!, 是的,你没听错。
至于为什么undefined被重写会很危险呢,看下面的代码:
那你觉得如果你希望之传递第二个参数,第一个参数用默认值或是无所谓,该怎么写?
这段代码只是为了实现函数柯里化调用
ECMAScript5.1 15.3.4.4中有解释, 当传入的第一个参数是null, undefined时, 函数的上下文将指向window (node中是global)
第一个是占位用的,但是用null效果会比undefined好吧。一般个人习惯用null来占位。