javascript 函数传递 undefined 作为参数的作用

查看:286
本文介绍了javascript 函数传递 undefined 作为参数的作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var leadingThirtysevenList = list.bind(undefined, 37);

这是在手册中看到的一段关于 bind() 函数传入第二个参数时实现的功能的代码段,其中他将 undefined 作为参数传入。在一些框架中也看到过参数传递 undefined 的做法,但是在网上搜索一直没能找到一个比较完整清晰的回答,想请各位老师给个详细的解答。

解决方案

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

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

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

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

这篇关于javascript 函数传递 undefined 作为参数的作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆