不用吧,javascript不要求先声明数据类型

解决方案 »

  1.   

    printcard中的this应该指的不是card对象,这样是对的:<script language="javascript">
    function card(name,address,work,home){
    this.name=name;
    this.address=address;
    this.workphone=work;
    this.homephone=home;
    this.printcard=printcard(this);
    }
    function printcard(a){
    line1="<b>name:</b>"+a.name+"<br>\n";
    line2="<b></a>address:</b>"+a.address+"<br>\n";
    line3="<b>work:</b>"+a.workphone+"<br>\n";
    line4="<b>home:</b>"+a.homephone+"<br>\n";
    document.write(line1,line2,line3,line4);
    }
    xmh=new card("dreamriver","707号","7725981-208","3839377");
    xmh.printcard();
    </script>
      

  2.   

    printcard中的this应该指的不是card对象,指的是printcard对象
      

  3.   

    TO runmin(稻草人) :
    你的代码是正确的,下面这句话不是正确的。
    ->printcard中的this应该指的不是card对象这个就是指card对象的,printcard是card的成员函数的。你的代码实际上类似于 C++中friend函数的概念。作者的代码是有一点小错误:构造函数中:
    this.printcard  =  printcard();
    应该是这样
    this.printcard  =  printcard;
    因为传送的是函数地址。还有一处:
    xmh.printcard;
    应该为:
    xmh.printcard();调用的是函数,不是引用变量。
      

  4.   

    我认为printcard函数是作为card对象的一个方法来使用的,所以不需要任何参数,而是再一次使用this关键字来引用当前对象的方法。