日期:2014-05-16  浏览次数:20517 次

一个精巧的小小问题

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

------解决方案--------------------
你这是要从新给a赋值吗?
是的话可以这样
this.a = 2;
return this.a;
------解决方案--------------------
JScript code
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)

------解决方案--------------------
function A(){
 this.a = 1;
 this.f = new B();
}
function B(){
this.a = 2;
}

var temp = new A();
alert( temp.f.a);
------解决方案--------------------
探讨
你这是要从新给a赋值吗?
是的话可以这样
this.a = 2;
return this.a;

------解决方案--------------------
JScript code




        function A() {
            this.a = 1;
            var sender = this;
            this.f = function () {
                sender.a = 2;
                
            }
        }

        var c = new A(); 
        c.f();
        alert(c.a);// 为2