【发布时间】:2016-02-04 08:32:20
【问题描述】:
var stack_1 =
{
sp: 10,
stk: new Array(10),
push: function (v)
{
sp = sp - 1;
stk[sp] = v;
}
}
问题:
这个程序不起作用。因为我们需要写“this.sp”等。我不明白如果函数完全属于“stack_1”,为什么我们需要写“this.sp”。
【问题讨论】:
-
this取决于函数的调用方式,而不是定义的位置。 -
这就是 javascript 的工作方式 - 例如,与 c# 不同,它不会“假设”您想要
this上下文来访问您正在访问的任何内容 -
只要变量在本地范围内,就没有必要使用
this.variable,当然,除非在对象外部存在同名变量,但可以从对象内部访问。 -
我在想既然函数“push”属于“stack_1”,“push”应该可以访问“stack_1”的所有内容。
标签: javascript function object