1

我从“JavaScript Enlightement”一书中获取了下面的代码。代码说前两个语句返回 true,但是当我在 JSFiddle 中运行代码时,第一行返回“false”(使用 var 关键字定义的变量)。这是代码:

<!DOCTYPE html><html lang="en"><body><script>
var myStringVar = 'myString';
var myFunctionVar = function() {};
myString = 'myString';
myFunction = function() {};
console.log('myStringVar' in window); // returns true
console.log('myFunctionVar' in window); // return true
console.log('myString' in window); // returns true
console.log('myFunction' in window); // return true
</script></body></html>

有人可以解释这里发生了什么吗?

4

1 回答 1

0

在 jsFiddle 中,您的代码是嵌入的,并且不会直接运行,window而是在页面加载时调用的回调中运行。

如果要测试这些情况,则必须在标准页面中运行代码或选择"no wrap"左侧面板第二个菜单中的选项之一。

于 2013-03-02T10:55:49.710 回答