作用域
JS中一共2种作用域
- 全局作用域 直接写在script标签中的JS代码为全局作用域,打开页面创建,关闭页面销毁,全局作用域中有一个对象window,创建的对象都是window的对象属性
- 函数作用域(局部作用域)调用函数时创建,调用完毕后销毁
在函数领域如果想访问全局,可以直接使用window.属性值
函数中不用VAR声明的变量都会成为全局变量
函数领域中var声明的变量,也会在所有代码执行之前被声明,但不会被赋值,下面例子中var a在ff函数运行前被声明,但是a=2不会被提前赋值,所以运行后a为 undefined.如果删掉VAR A则会因为没有提前声明报错.
function ff(){
console.log(a)
var a =2
}
ff()
This
解析器每次调用函数都会向函数内部传递一个隐含参数this,this指的是一个对象,根据函数调用方式不同,this会指向不同的对象
- 以函数调用this永远是window
- 以方法调用this就是调用方法的对象
var name = "全局123"
function ff(){
console.log(this.name) //改成this会根据调用对象不同输出不同的函数属性值
}
var obj ={
name:"swk",
age: ff
}
var obj1={
name:"shs",
age:ff
}
obj1.age()
//obj.age()会输出swk
本文作者:零哭谷
本文链接:https://www.cnblogs.com/Young-shi/p/10438960.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步