gpt4 book ai didi

javascript - 在窗口对象上设置空字符串

转载 作者:行者123 更新时间:2023-12-01 08:12:38 25 4
gpt4 key购买 nike

将窗口中的空字符串指定为属性有什么缺点吗?

例如:

window[""] = function() {
console.log("foo");
}

(); // will log foo

jsFiddle demo .

编辑:当然,这会破坏将内容放入括号内以进行澄清。你可能想要这个:

window[""] = function(prop) {
console.log(prop);
return prop;
}

进一步编辑:上面的代码是某种 IIFE。哎呀。这就是我不喜欢自动分号插入的原因:

window[""] = function() {
console.log("foo");
}();

最佳答案

您的代码没有像您想象的那样运行。

();

这本身就是一个语法错误。

试试看:

window[""] = function() {
console.log("foo");
};

();

您的代码实际上被解释为(}() 之间的空格被忽略):

window[""] = function() {
console.log("foo");
}();

它运行匿名函数并将其返回值 (undefined) 设置为 window[""]

这就是为什么分号很重要!

将空白字符串设置为对象的属性有效的。但是,由于它不是有效的标识符(空字符串),如果不执行 window[""] 就无法访问它。

window[""] = function() {
console.log("foo");
};

window[""](); // logs "foo"

关于javascript - 在窗口对象上设置空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com