js 面向对象编程 陷阱1

来源:互联网 发布:阿里云 docker服务器 编辑:程序博客网 时间:2024/06/05 01:10
 如下代码:期待结果:  输出 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 ()】
========================================================================================

为什么?
原创粉丝点击