<!DOCTYPE html>
<!--
AO 活动对象 抽象的东西 不能写在程序中的
AO :active Object
执行环境:
js代码的执行是由环境的 (全局环境 函数内部环境)
改环境定义了其有权访问的其他数据
环境有一个与之关联的活动对象 AO
环境中的所有的 变量 和 函数 都是活动对象AO的属性
全局环境是最外围的执行环境 活动对象是window对象
执行环境中的代码执行完毕后就被销毁
-->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<script>
// ------------------------------------------------
// 变量 banji的访问就可以看做一条作用域链
var banji="php0609";
console.log('班号:'+banji);
function f1(){
console.log('f1:'+banji);// 能访问到班级 banji变量为全局变量 可以访问到
function f2(){
var person="wang"
console.log('f2:'+banji);
function f3(){
var banji="java0507" //
console.log('f3:'+banji);//java0507 其实是访问AO.banji了
console.log(person)//其实是访问 AO.person 了
}
f3();//能访问
}
f2();//能访问
}
f1();//能访问
// 变量在函数内部访问执行是一个固态的过程
// 对于在f3环境内部访问的banji变量
// 首先在f3当前环境寻找改变量 如果没有这想上级环境寻找 如果没有继续向上级环境寻找。
// 知道找到全局环境为止
// 以上方式在f3()内部获得一个变量,貌似一个动态的寻找过程 试着不然 启示一个固态的过程
// 在环境内部获得一个变量 ,该变量早早地已经固化为本省环境AO活动对象的属性了
// ------------------------------------------------
</script>
<body>
</body>
</html>
什么是javascript的AO 活动对象
最新推荐文章于 2024-01-14 22:00:53 发布