你是不是以前定VB类的呀, 大小写不分:
Function university(name,city,creatDate URL)
==>
function university(name,city,creatDate,URL)This.name=name;
==>
this.name=name;This.creatDate=New Date(creatDate);
==>
this.creatDate=new Date(creatDate);var U1=New university
==>
var U1=new university

解决方案 »

  1.   

    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <script Language="JavaScript">
    <!--function university(name,city,creatDate,URL){this.name=name;
    this.city=city;
    this.creatDate=new Date(creatDate);
    this.URL=URL;
    this.showuniversity=showuniversity;
    }
    var U1=new university("云南省","昆明市","January 05,1997 12:00:00","http://www.YN.KM");
    var U2=new university("云南电子科技大学","昆明","January 07,1997 12:00:00","htlp://www.YNKJ.CN");function showuniversity(){
    for (var prop in this)
    alert(prop +=" = "+this[prop]+"");
    }U1.showuniversity()
    // -->
    </Script>
    </BODY>
    </HTML>
      

  2.   

    多谢  meizz(梅花雪) ,原来还要区分大小写啊,呵呵,另外弹出的U1,怎麽最后还有弹出如下的代码?
    function showuniversity(){
    for (var prop in this) 
    alert(prop +=" = "+this[prop]+"");
    }
    谢谢!
      

  3.   

    this 里当然也包括 this.showuniversity() 这个方法定义呀, 你轮循的时候当然也会把这个方法的定义轮出来的
      

  4.   

    function showuniversity()
    {
      for (var prop in this)
      {
        if(typeof(this[prop]) != "function")
        alert(prop +=" = "+this[prop]+"");
      }
    }加了这么一句判断就不会出来这个方法的具体定义了
      

  5.   

    果然,谢谢meizz(梅花雪)的指点!!!还有一个问题,在如下代码中为什麽可以用这句:
    document.write(body1); //这里为Person.toString()创建一个调用
    来创建一个调用呢,为什麽我把它换成body1.toString后就不能显示body1的内容了呢???
    <HTML>
    <HEAD>
    </HEAD>
    <BODY> 
    <SCRIPT language="JavaScript">
    <!-- Hide from older browsersfunction Person(name, age, colour) {
    this.name = name;
    this.age = age;
    this.colour = colour;
    this.birthYear = (new Date()).getYear() - this.age;
    this.toString = printPerson; // 这里定义the Person.toString() 方法
    this.isOlder = isOlder; // 这里定义Person.isOlder(Person) 方法
    }function printPerson() {
    var text = this.name + " was born in " + this.birthYear +"<br>";
    text += "and is " + this.age + " years old.<p>";
    return text;
    }function isOlder(otherPerson) { // 这里定义是否第一个人是更老的return (this.age > otherPerson.age); // 返回布尔型数值}
    //下面的代码用于测试我们的函数var body1 = new Person("Patrick", 22, "red");
    var body2 = new Person("Betty", 21, "green");document.write(body1); //这里为Person.toString()创建一个调用
    document.write(body2);document.write(body1.name);
    document.write((body1.isOlder(body2)) ? " is " : " is not "); // 是否更老?
    document.write("older than " + body2.name);// Stop hiding --></SCRIPT>
    </BODY>
    </HTML>
      

  6.   

    没有问题呀!!
    document.write(body1.toString());
    document.write(body2.toString());
      

  7.   

    哦,是这样用啊,我直接写成了body1.toString();没有加document.write,呵呵,这里为什麽不能直接写成body1.toString();呢,而上面的就可以写成U1.showuniversity();呢???
      

  8.   

    这句
    document.write(body1); //这里为Person.toString()创建一个调用是不是当只有一个方法时就是默认调用该方法呢?
      

  9.   

    不是, 是因为 toString() 是一个系统函数, 你只不过是在写代码的时候重载了而已
      

  10.   

    那我就有点晕了,在
    function Person(name, age, colour) {
    ...
    this.toString = printPerson; // 这里定义Person.toString() 方法
    ...}
    定义 Person.toString() 方法后,在显示的时候又没有用到啊?那document.write(body1); 是怎麽调用Person.toString()方法的呢?
      

  11.   

    meizz(梅花雪) 不在线了吗?