JavaScript 全局对象

38 阅读1分钟

全局对象是一个永远存在于 global scope 的 object。在 JavaScript 中,有一个永远被定义的全局对象window

创建全局属性方法

使用window

window.name = "tim"

window.syaHi=function (){console.log("hello)}

特点

  1. 全局对象的属性可以直接被访问
  2. 给未声明的变量赋值, 实际就是给全局对象的属性赋值 name='jack' (永远不要这么干)

image.png 3. 所有的全局变量, 全局函数都会附加全局对象

称之为全局污染, 或全局暴露, 要避免污染, 使用立即执行函数改变作用于

立即执行函数

全局可以直接访问, 我们声明变量, 函数,都会附加到全局, 我们要避免过多的全局变量,函数 作用域分为全局, 函数, 既然它是全局的,那变成函数作用域就不会暴露了,使用立即执行函数

(function (){
    let name = "tim"
    function sayHi(){
        console.log("name"+",hello")
    }
    sayHi()
})()

立即执行函数 : 函数被声明后,马上执行, 上图最外边有两个()(),第一个代表这是个函数什么,第二个代表函数执行, 此时函数不会附加到全局

立即执行函数如何暴露接口

方法1: return 或者 return 对象

image.png 暴露了obj ,里面有属性和变量