gpt4 book ai didi

javascript - 对象属性和方法的范围

转载 作者:行者123 更新时间:2023-11-29 20:16:18 24 4
gpt4 key购买 nike

文章中Show love to the object literal ,据说:
当我们在一个页面中有多个脚本时,如果它们的名称重复,全局变量和函数将被覆盖。

One solution is to make the variables as properties & functions as methods of an object, and access them via the object name.

但这会阻止变量进入全局命名空间的问题吗?

<script>
var movie = {
name: "a",
trailer: function(){
//code
}
};
</script>

在上面的代码中,哪些元素被添加到全局命名空间?
a) 只是对象名称 - movie
b) 对象名称及其内部的属性和方法——movie, movie.name, movie.trailer()

最佳答案

movie 将存在于全局命名空间中(在浏览器中:window)。在 movie 范围内存在:nametrailer。如果您尝试从全局对象执行 trailer,您会看到这一点(window.trailer() 将导致 ReferenceError: trailer is not defined) . trailer 只能使用 movie.trailer()(或 window.movi​​e.trailer())执行。

Javascript 具有词法 作用域,又名静态 作用域,意思是:

  • 程序中特定位置的标识符始终指代相同的变量位置 — 其中“始终”表示“每次执行包含的表达式”,并且

  • 它所指的变量位置可以通过对该标识符出现的源代码上下文进行静态检查来确定,而不必考虑整个程序的执行流程 1

1 Source

关于javascript - 对象属性和方法的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544874/

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