87,903
社区成员
发帖
与我相关
我的任务
分享
"use strict";
//定义全局方法,作为执行环境的起点,环境编号1
function firstMeth(){
//firstMeth环境里定义一个secondMeth的方法,环境编号2
function secondMeth(){
var num = 1;
//secondMeth环境里定义一个thirdMeth方法,环境编号3
function thirdMeth(){
console.log(num);
}
//执行thirdMeth方法
thirdMeth();
}
//执行secondMeth方法
secondMeth();
}
//全局环境开始执行firstMeth,环境编号0
firstMeth();
"use strict";
/*
* 目的:验证自己理解的方法组成的作用域链
* 实验步骤:1.创建一个拥有两个方法的全局对象
* 2.此对象方法1实现内容为声明一个num变量,并赋值为1,调用方法2
* 3.此对象方法2实现内容为输出num
*/
//声明一个对象
var obj = {};
//为obj对象添加方法
obj.func1 = function() {
var num = 1;
//调用obj对象的func2方法
this.func2();
};
//为obj对象添加方法
obj.func2 = function() {
//输出num
console.log(num)
};
//调用obj对象的func1方法
obj.func1();
a.pro.meth = function(){};
function addMeth(){
a.pro.meth = function(){
//statements
}
}
"use strict";
function test() {
var num = 1;
function test1() {
function test2() {
function test3(args) {
var num = 2;
args();
}
//执行test3,最里面的环境,这里传入了要给匿名函数
test3(function() {
console.log(num);
});
}
test2();
}
test1();
}
test();
"use strict";
function test(){
//statements
}
function test1(){
test();
}
test1();