none
问个JS问题 RRS feed

  • 问题

  • function T()
    {
    var c=new A("123456");
    alert(c.Msg);
    c.B();
    }
    function A(msg)
    {
    this.Msg=msg;
    var Msg=msg;
    this.B=function(){
    _B();
    }
    _B=function()
    {
    alert(this.Msg);
    }
    }
    alert(this.Msg);未定义
    如何达到我的目的,在这种情况下,不修改_B,this.Msg的可见性
    就是在_B里访问A里的this.Msg
    2009年6月12日 7:46

答案

  • 你好 ,你可以通过call实现

        function T()
    {
    var c=new A("123456");
    alert(c.Msg);
    c.B();
    }
    function A(msg)
    {
    this.Msg=msg;
    var Msg=msg;
    this.B=function(){
    _B.call(this);
    }
    _B=function()
    {
    alert(this.Msg);
    }
    }
    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 male110 2009年6月12日 9:33
    2009年6月12日 8:17
    版主

全部回复

  • 你好 ,你可以通过call实现

        function T()
    {
    var c=new A("123456");
    alert(c.Msg);
    c.B();
    }
    function A(msg)
    {
    this.Msg=msg;
    var Msg=msg;
    this.B=function(){
    _B.call(this);
    }
    _B=function()
    {
    alert(this.Msg);
    }
    }
    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 male110 2009年6月12日 9:33
    2009年6月12日 8:17
    版主
  •  尝试把msg 全局化可以吗?就是把var 关键字去掉~
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月12日 11:15
    版主