谁能帮我看看为什麽运行完后没有结果,是空页面??俺是新手
<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]+"");
}
-->
</Script>
</BODY>
</HTML>
问题点数:20、回复次数:12Top
1 楼meizz(梅花雪)回复于 2004-12-02 09:47:54 得分 0
你是不是以前定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 universityTop
2 楼meizz(梅花雪)回复于 2004-12-02 09:48:19 得分 0
<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>Top
3 楼jiangke(青青子矜)回复于 2004-12-02 10:14:50 得分 0
多谢 meizz(梅花雪) ,原来还要区分大小写啊,呵呵,另外弹出的U1,怎麽最后还有弹出如下的代码?
function showuniversity(){
for (var prop in this)
alert(prop +=" = "+this[prop]+"");
}
谢谢!
Top
4 楼meizz(梅花雪)回复于 2004-12-02 10:16:39 得分 0
this 里当然也包括 this.showuniversity() 这个方法定义呀, 你轮循的时候当然也会把这个方法的定义轮出来的Top
5 楼meizz(梅花雪)回复于 2004-12-02 10:19:31 得分 0
function showuniversity()
{
for (var prop in this)
{
if(typeof(this[prop]) != "function")
alert(prop +=" = "+this[prop]+"");
}
}
加了这么一句判断就不会出来这个方法的具体定义了Top
6 楼jiangke(青青子矜)回复于 2004-12-02 10:32:23 得分 0
果然,谢谢meizz(梅花雪)的指点!!!还有一个问题,在如下代码中为什麽可以用这句:
document.write(body1); //这里为Person.toString()创建一个调用
来创建一个调用呢,为什麽我把它换成body1.toString后就不能显示body1的内容了呢???
<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
<!-- Hide from older browsers
function 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>Top
7 楼meizz(梅花雪)回复于 2004-12-02 10:38:13 得分 20
没有问题呀!!
document.write(body1.toString());
document.write(body2.toString());Top
8 楼jiangke(青青子矜)回复于 2004-12-02 10:43:29 得分 0
哦,是这样用啊,我直接写成了body1.toString();没有加document.write,呵呵,这里为什麽不能直接写成body1.toString();呢,而上面的就可以写成U1.showuniversity();呢???Top
9 楼jiangke(青青子矜)回复于 2004-12-02 10:49:01 得分 0
这句
document.write(body1); //这里为Person.toString()创建一个调用
是不是当只有一个方法时就是默认调用该方法呢?Top
10 楼meizz(梅花雪)回复于 2004-12-02 10:52:44 得分 0
不是, 是因为 toString() 是一个系统函数, 你只不过是在写代码的时候重载了而已Top
11 楼jiangke(青青子矜)回复于 2004-12-02 11:00:43 得分 0
那我就有点晕了,在
function Person(name, age, colour) {
...
this.toString = printPerson; // 这里定义Person.toString() 方法
...}
定义 Person.toString() 方法后,在显示的时候又没有用到啊?
那document.write(body1); 是怎麽调用Person.toString()方法的呢?Top
12 楼jiangke(青青子矜)回复于 2004-12-02 11:28:04 得分 0
meizz(梅花雪) 不在线了吗?Top




