博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 变量作用域 与 this
阅读量:6552 次
发布时间:2019-06-24

本文共 650 字,大约阅读时间需要 2 分钟。

首先说下js作用域链:由于js变量都是对象的属性,对象又可以是对象的属性,最终到达window,所以变量-------window就是一条作用域链;

先说下变量作用域:

var a=10;

function test(){
console.log(a);----------undefined
var a = 5;

console.log(a);----------5

}
test();

test() 方法内:console.log(a)中变量a寻找自己的定义,发现var a = 5;已经有定义了,所以a的定义就是局部变量。这个时候由于console.log(a)的时候a还没有被赋值,所以undefined

 

再看this:

var a=10;

function test(){

console.log(a);

this.a = 5;
var a =5;

}

test();---undefined

console.log(a);------5

this发现基本上都是指向window,都会改变全局变量。

除了

var a=10;

function test(){

console.log(a);

this.a = 5;

}

var t = new test(); ------10

console.log(a);---10

这个时候 this 属于函数t--不会改变全局变量

 

转载于:https://www.cnblogs.com/qianduanxiaocaij/p/4832315.html

你可能感兴趣的文章
自己主动瀑布流布局和实现代码加载
查看>>
maven的一些依赖
查看>>
腾讯云短信服务使用记录与.NET Core C#代码分享
查看>>
jQuery hover() 方法
查看>>
sql语句
查看>>
android 一步一步教你集成tinker(热修复)
查看>>
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
css入门教程资料(3)
查看>>
putty、xshell的密钥认证
查看>>
Jenkins+git+tomcat 自动化持续部署
查看>>
项目log日志打印
查看>>
vSphere 5 中的多网卡 vMotion
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
Oracle约束的状态及验证机制
查看>>
Redis总结(七)Redis运维常用命令
查看>>
linux命令:cpio命令 系统裁剪之四busybox 进行linux系统制作
查看>>
常用shell
查看>>
文档的压缩与打包
查看>>
interactive_timeout和wait_timeout的关系
查看>>