Javascript 执行上下文-创建和激活阶段
我经历了这一切,真的很好。我只想问一些我脑海中正在思考的问题Javascript 执行上下文-创建和激活阶段,javascript,Javascript,我经历了这一切,真的很好。我只想问一些我脑海中正在思考的问题 function foo(i) { var a = 'hello'; var b = function privateB() { }; function c() { } } foo(22); 调用foo(22)时,创建阶段如下所示: fooExecutionContext = { variableObject: { arguments: {
function foo(i) {
var a = 'hello';
var b = function privateB() {
};
function c() {
}
}
foo(22);
调用foo(22)时,创建阶段如下所示:
fooExecutionContext = {
variableObject: {
arguments: {
0: 22,
length: 1
},
i: 22,
c: pointer to function c()
a: undefined,
b: undefined
},
scopeChain: { ... },
this: { ... }
}
还是功能上下文]
我对JS这方面的事情很陌生。我只是想纠正我自己,让你们更清楚。。。所以我没有错。调用函数时,会创建一个
执行上下文。这在函数的环境中定义了很大一部分
1.为什么长度是1。
现在让我们看看您的函数,arguements
属性被创建。此对象包含长度(即传递给函数的参数数)
现在让我们看看下面的例子
function myFun1(a,b){
function myFunc2(){
alert("hello");
}
}
myFun1(10,20);
myFun1中的ExecutionContext
ExecutionContext: {
variableObject: {
arguments: {
0: '10', 1: '20',
length: 2
}
}
}
2.这也指什么。[它是指全局上下文还是函数上下文]
此属性是创建的,它取决于调用函数的方式
常规函数**myFunction(args)
=>它将引用全局函数
对象i、 e窗口对象
对象方法Object.myFunction(args)
=>它将引用
反对
调用()或应用()的回调。
此值是第一个值
call()/apply()的参数。
作为构造函数(新的myFunction(1,2,3))
。它的价值是
以myFunction.prototype作为原型的空对象
一点以后我就不看书了。真的吗@亚历山大:我对JS方面的事情很陌生。我只是想纠正我自己,让你们更清楚。。。所以我没有错。