开发者社区 问答 正文

一个js关于私有函数的问题

为什么私有方法却访问到全局变量去了??
以下代码结果是两个“xxx”

<script language='javascript' >
     
    function Person(){
        this.name='hhh';//吧this.name 改成  var name 再试试
        var fun1 = function(){document.write(this.name+'<br>');}
        var fun2 = function(){document.write(name+'<br>');}
         
        this.publicFun = function(){fun1();fun2();};
    }
     
    p = new Person();
    var name = 'xxx';
    p.publicFun();
 
</script>

展开
收起
a123456678 2016-07-15 15:38:04 1589 分享 版权
1 条回答
写回答
取消 提交回答
  • function Person(){
            this.name='hhh';//吧this.name 改成  var name 再试试
            var that = this;
            var fun1 = function(){document.write(that.name+'<br>');}
            var fun2 = function(){document.write(name+'<br>');}
             
            this.publicFun = function(){fun1();fun2();};
        }
         
        p = new Person();
        var name = 'xxx';
        p.publicFun();
    2019-07-17 19:57:06
    赞同 展开评论