在 Login.js 中 //声明变量
function Login(){
   this.id1;
   var id2;
}Login.prototype.doLogin1 = function(){
  alert(this.id1);
  //这个方法只能取得this.命名的值
}function doLogin2 (){
   //想取得id1 和 id 2 要怎么转化呢?直接alert()是undifined
}

解决方案 »

  1.   

    不清楚?就是在 function doLogin2 (){}方法中如何取得 id1 和 id2 的值!
      

  2.   

    在没学会走之前,就别先跑了.
    既然不了解,直接用最简单的方法最好了.var Class = { 
        create: function() { 
            return function() { 
                this.initialize.apply(this, arguments); 
            } 
        } 

    var Login = Class.create();
    Login.prototype = {
        initialize: function() { }, 
        id1:1,//todo
        id2:2//todo
    }
    function doLogin2 (){
       var login = new Login();
       alert(login.id1);
       alert(login.id2);
    }doLogin2();
      

  3.   

    在楼主的例子里
    var id2;只是个局部的变量,在函数Login 里有效,并且没有赋值,只是声明而已
    任何函数中的this代表调用该函数的对象,如果没有任何对象调用该函数(直接让函数执行),那么就相当于是window对象调用该函数执行(其中的this就代表window对象)
      

  4.   

    LZ是要这样吗?function Login(){
         this.id1 = "你能取得的值";
         var  id2 = "你还想要的值";
         this.$log = function(__){
              __.$ = function(IdName){
     return eval(IdName);
      }
         }
    }alert(new Login().id1); //你能取得的值var obj = {};
    new Login().$log(obj);
    alert(obj.$("id2"));    //你还想要的值
      

  5.   

    忘了LZ的doLogin2,lolfunction Login(){
          this.id1 = "你能取得的值";
          var  id2 = "你还想要的值";
          this.$log = function(__){
               __.$ = function(IdName){
                    return eval(IdName);
               }
          }
    }alert(function doLogin2(obj){
          new Login().$log(obj);
          return new Login().id1 + " and " + obj.$("id2")
    }({}))一天就10分?应该多灌水多得分,就能多多的下载资源......
      

  6.   


    function Login(){
       this.id1;//function中的this将被视为该构造函数的属性操作,id1将被当作该构造函数的一个属性
       var id2;//函数中的变量
    }Login.prototype.doLogin1 = function(){
      alert(this.id1);//原型中的this同样被视为属性操作,只能访问到构造函数相应的属性和方法
    }/*
    想取得id1 和 id 2 要怎么转化呢?直接alert()是undifinedLogin中的this.id1未赋值,所以结果是undefined
    要访问id2,只能调用一个和id2拥有相同作用域的函数才能访问,比如,我们可以这样写function Login(){
       this.id1 = 'id1';
       var id2 = 'id2';
       this.doLogin2 = function(){alert(id2);};
    }Login.prototype.doLogin1 = function(){
      alert(this.id1);
    }var test = new Login();
    test.doLogin1();
    test.doLogin2();*/