<div id="tag">hehe</div>
<script type="text/javascript">
function classX(){
alert(this.obj)
this.obj= document.getElementById("tag");
}var my = new classX();//第一次显示undefind
var my = new classX();//第二次也是undefind
</script>
在第一次实例化的时候不是已经赋值了obj对象了吗?不想在每次实例化的时候都赋值一次obj。不想写成全局对象。

解决方案 »

  1.   

    你这样写看看:function classX(){
        this.obj = null;
    }
    var my = new classX();
    my.obj = document.getElementById("tag");
      

  2.   

    像你这样,可是可以的。但是关键是要classX动态修改原型的时候调用这个objclassX.prototype.setSpeed = function (status) {//michael
    this.obj.innerHTML = status;
    };
      

  3.   

    楼主你要实现什么东西?function classX(){ 
    var obj =document.getElementById("tag"); 
    return function(){
    alert(obj); 
    }

      

  4.   

    我要实现的是一个loading
    每秒中都要实例化一次原型,但是只想在第一次实例化时候,得到obj.又不想写成全局对象
      

  5.   

    试试下面的
    function classX(){ 
     this.obj= document.getElementById("tag"); 
     alert(this.obj)

    调换位置之后。成功获得对象。
    注意把
    <script type="text/javascript"> 
    function classX(){ 
    alert(this.obj) 
    this.obj= document.getElementById("tag"); 
    } var my = new classX();//第一次显示undefind 
    var my = new classX();//第二次也是undefind 
    </script> 
    放在页面最后
      

  6.   

    还有
    var my = new classX();//第一次显示undefind 
    var my = new classX();//第二次也是undefind 
    是实例化2个对象,和下面代码结果是一样的。
    var my = new classX();//第一次显示undefind 
    var you = new classX();//第二次也是undefind 
    都是从新执行方法,那么this.obj就都是空,还没有赋值。你从新new也是重新给你分配村内,重新执行方法。而this.obj是方法内的变量,没有赋值之前就是空的。就算赋值完了,你在外面也不会获得的
      

  7.   

    var my = new classX();//第一次显示undefind 
    var my = new classX();//第二次也是undefind 
    为什么要使用一样的变量,要干什么?
    明摆着重新初始化啊!!!当然是未定义啊
      

  8.   

    搞定了,用动态原型方法
    function car (sColor,iNumbers){ // 构造函数只用来定义对象的所有非函数属性,即对象的属性 
    this.color = sColor; 
    this.numbers = iNumbers; 
    this.dirvers = new Array ("Jone","Leon"); 
    alert(car.prototype.showColor) 
    if(typeof car._initialized=="undefined"){ //
    car.prototype.obj = document.getElementById("tag"); 

    car._initialized = true; // 

      

  9.   

    这是基本概念问题。
    对classX来说,有两种用法,
    1,一种是用作函数,比如 classX()这样来call它,那么this就是指它本身。
    2,另一种是把它和new结合在一起用,作为构造函数来用那么,this指的不是它,而是每次生成的新的对象。对每次生成的新对象来说,this.obj总是未定义的。