如下代码:
期待结果: 输出 1,2
实际结果: 输出 2,2
<script>
function A(par)
{
var i = par ;
A.prototype.getI = function ()
{
return i ;
}
}
function B()
{
var a1 = new A(1);
var a2 = new A(2);
console.log(a1.getI());
console.log(a2.getI());
}
B() ;
</script>
如下两种措施能够达到目的
1. 将 【var i = par ;】 改为 【this.i = par ;】
2. 将 【A.prototype.getI = function ()】 改为 【this.getI = function ()】
》疑惑
本问题的本质是js作用域(上下文空间)。
请朋友们指点迷津