js里面想这么定义:
function A(){
 this.a = 1;
 this.f = function(){
  this.a = 2;
 }
}
想用f访问A下的属性a,这么写显示undefined。
如何才能实现目的呢?

解决方案 »

  1.   

    你这是要从新给a赋值吗?
    是的话可以这样
    this.a = 2;                  
    return this.a;
      

  2.   

    function A() {
            this.a = 1;
            this.f = function () {
                this.a = 2;
                return this.a;
            }
        }
        var a = new A();
        alert(a.a)
        a.f();
        alert(a.a)有什么问题吗?你怎么用的
      

  3.   

    function A(){
     this.a = 1;
     this.f = new B();
    }
    function B(){
      this.a = 2;
    }var temp = new A();
         alert( temp.f.a);
      

  4.   

            function A() {
                this.a = 1;
                var sender = this;
                this.f = function () {
                    sender.a = 2;
                    
                }
            }        var c = new A(); 
            c.f();
            alert(c.a);// 为2
    希望可以帮助楼主理解
      

  5.   

    刚试验了下是这样的,看样子我理解有问题。。我很好奇为啥在function () {
                this.a = 2;
                return this.a;
            }内部的this还是指向了 A ,而不是 A.f呢。请教下
      

  6.   

    问题解决了!正确用法正如楼上所说。是我的层数太多了没用对。
    另外在A下的f中使用this,指向的确实还是A而不是f