问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript的创建和删除对象的实训报告怎么写

发布网友 发布时间:2022-04-24 09:33

我来回答

1个回答

热心网友 时间:2022-04-22 13:29

执行上下文
当ECMAScript 代码执行时,它总是在一定的上下文中运行,执行上下文是一个有点抽象的实体,它有助于我们理解作用域和变量实例化如何工作的。对于三种类型的可执行代码,每个都有执行的上下文。当一个函数执行时,可以说控制进入到函数代码(Function code)的执行上下文。全局代码执行时,进入到全局代码(Global code)的执行上下文。
正如你所见,执行上下文逻辑上来自一个栈。首先可能是有自己作用域的全局代码,代码中可能调用一个函数,它有自己的作用域,函数可以调用另外一个函数,等等。即使函数递归地调用它自身,每一次调用都进入一个新的执行上下文。
激活对象/可变对象
每一个执行上下文在其内部都有一个所谓的可变对象。与执行上下文类似,可变对象是一个抽象的实体,一个描述变量示例化的机制。现在,最有趣的是在源代码中声明的变量和函数被当作这个可变对象的属性被添加。
当控制进入全局代码的执行上下文时,一个全局对象用作可变对象。这也正是为什么在全局范围中声明的变量或者函数变成了全局对象的属性。
/* remember that `this` refers to global object when in global scope */
var GLOBAL_OBJECT = this;
var foo = 1;
GLOBAL_OBJECT.foo; // 1
foo === GLOBAL_OBJECT.foo; // true
function bar(){}
typeof GLOBAL_OBJECT.bar; // "function"
GLOBAL_OBJECT.bar === bar; // true
Ok,全局变量变成了全局对象的属性,但是,那些在函数代码(Function code)中定义的局部变量又会如何呢?行为其实很相似:它成了可变对象的属性。唯一的差别在于在函数代码(Function code)中,可变对象不是全局对象,而是所谓的激活对象。每次函数代码(Function code)进入执行作用域时,激活对象即被创建。
不仅函数代码(Function code)中的变量和函数成为激活对象的属性,而且函数的每一个参数(与形参相对应的名称)和一个特定Arguments 对象(Arguments )也是。注意,激活对象是一种内部机制,不会被程序代码真正访问到。
(function(foo){
var bar = 2;
function baz(){}
/*
In abstract terms,
Special `arguments` object becomes a property of containing function's Activation object:
ACTIVATION_OBJECT.arguments; // Arguments object
...as well as argument `foo`:
ACTIVATION_OBJECT.foo; // 1
...as well as variable `bar`:
ACTIVATION_OBJECT.bar; // 2
...as well as function declared locally:
typeof ACTIVATION_OBJECT.baz; // "function"
*/
})(1);
最后,在Eval 代码(Eval code)中声明的变量作为正在调用的上下文的可变对象的属性被创建。Eval 代码(Eval code)只使用它正在被调用的哪个执行上下文的可变对象。
var GLOBAL_OBJECT = this;
/* `foo` is created as a property of calling context Variable object,
which in this case is a Global object */
eval('var foo = 1;');
GLOBAL_OBJECT.foo; // 1
(function(){
/* `bar` is created as a property of calling context Variable object,
which in this case is an Activation object of containing function */
eval('var bar = 1;');
/*
In abstract terms,
ACTIVATION_OBJECT.bar; // 1
*/
})();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 如何理解 JavaScript 中作为参数的函数的作用域和 this 莲蓉月饼的做法步骤图,莲蓉月饼怎么做好吃 莲蓉馅蛋黄酥的家常做法大全怎么做好吃视 请问白莲蓉月饼怎么做才好吃? 莲蓉月饼怎样做好吃呢? 广式莲蓉月饼的做法,广式莲蓉月饼怎么做好吃 木糖醇莲蓉馅的做法,木糖醇莲蓉馅怎么做好吃 哪个牌子的白莲蓉馅料儿好吃? 月饼真的很好吃吗? 怎么做莲蓉馅/红糖发糕才好吃美味 美心双黄白莲蓉 双黄莲蓉 哪个好吃 豆沙和莲蓉到底有什么区别?? 莲蓉馅加熟糯米粉好不好吃 月饼里的莲蓉是什么?怎么做的? 月饼莲蓉馅的做法步骤图,月饼莲蓉馅怎么做好吃 月饼喜欢吃那种馅料的,酥皮的更好吃吗? 成都郫都区那些房产不限购? 梦见给别人背材火然后和一男人握手醒来 梦见老公的妈妈背材回家还叫我,还对我笑!,我在烧火! 周公解梦背木材爬上坡是什么意思能帮我仔细描述一下吗 javascript函数、事件、对象、方法的通俗解释和他们的作用。 javascript中函数创建对象并执行的问题 js函数作用域和对象作用域里变量的不同 00 bang’s blog 写出你所知道的javascript系统函数及常用对象,并且说明用途 想跟男朋友分手该怎么说 javascript中调用函数和变量都需要创建对象吗,需要为什么,不需要又为 ... 想和男朋友分手该怎么说才委婉? JS块级作用域和私有变量实例分析 我想跟男朋友分手了!但是不知道怎么说,该怎么办? 关于javaScript中的全局变量和成员变量以及this在函数中的作用域问题... 关于javascript 中(function(){})()的作用和用法 苹果相机怎么设置九宫格 javascript用带参数的构造函数定义一个对象Cat 我的苹果手机相机怎么没有九宫格 新手求解js的对象,属性,方法,的关系。内有具体例子 在javascript中,Function对象的本质是什么? 苹果手机怎么设置九宫格相机 javascript function 参数 为什么我的苹果xs max的相机设置没有九宫格? 请问减肥可以吃香干豆腐吗?