全局对象是一个永远存在于 global scope 的 object。在 JavaScript 中,有一个永远被定义的全局对象window
。
创建全局属性方法
使用window
window.name = "tim"
window.syaHi=function (){console.log("hello)}
特点
- 全局对象的属性可以直接被访问
- 给未声明的变量赋值, 实际就是给全局对象的属性赋值
name='jack'
(永远不要这么干)
3. 所有的全局变量, 全局函数都会附加全局对象
称之为全局污染, 或全局暴露, 要避免污染, 使用
立即执行函数
改变作用于
立即执行函数
全局可以直接访问, 我们声明变量, 函数,都会附加到全局, 我们要避免过多的全局变量,函数 作用域分为全局, 函数, 既然它是全局的,那变成函数作用域就不会暴露了,使用立即执行函数
(function (){
let name = "tim"
function sayHi(){
console.log("name"+",hello")
}
sayHi()
})()
立即执行函数 : 函数被声明后,马上执行, 上图最外边有两个()(),第一个代表这是个函数什么,第二个代表函数执行, 此时函数不会附加到全局
立即执行函数如何暴露接口
方法1: return
或者 return 对象
暴露了
obj
,里面有属性和变量