上一页 1 2 3 4 5 6 下一页 传递对象参数
同可以向一个对象传递参数一样,也可以把对象传递给另一个对象。请看看以下的例子,其中包含两个对象构造器,设置第二个的目的是把一个对象作为参数来接收:
<script language="JavaScript">
// Room object // accepts area (sq. ft.) and colour (walls) as parameters function Room(area, colour) { this.area = area; this.colour = colour; }
// House object // accepts price as parameter function House(price, room) { this.price = price; this.obj = room; }
</script>
再看看如何使用它:
<script language="JavaScript"> Kitchen = new Room(500, "white"); DiningRoom = new Room(600, "white");
RedGables = new House(89000, Kitchen); alert(RedGables.obj.area); </script>
在这种情况下,新创建的Room对象的例示 "Kitchen"被传递给 House 对象 "RedGables"。使用一种分级结构,就可能通过House对象一直深入到Room对象并获取一个特定对象属性的值。这与许多DOM 对象的使用方法是相同的。
获取及修改构造器信息
关于 JavaScript对象还有其它一些有趣的东西。比如,可以通过属性constructor(构造器)来获取一个对象的完整信息。以下例子演示了如何将其应用在 Sumthing对象构造器中:
<script language="JavaScript">
alpha = new Sumthing(23, 865); alert("The object constructor for alpha is " + alpha.constructor);
</script>
以下是运行结果:

另外,还可以使用 prototype关键字向一个已经存在的对象中增加新的对象属性。比如,以下代码向刚才的Room 对象中增加属性:
<script language="JavaScript">
// Room object // accepts area (sq. ft.) and colour (walls) as parameters function Room(area, colour) { this.area = area; this.colour = colour; } Room.prototype.direction = "east";
</script>
以上代码运行后,将向Room对象构造器中增加了一个叫做direction的对象属性,它的值为east。接着,试一试存取这个对象属性:
<script language="JavaScript"> Kitchen = new Room(1000, "green"); alert(Kitchen.direction); </script>
结果如下:

最后,还可以用prototype关键字来增加对象方法。
综合应用
上一页 1 2 3 4 5 6 下一页 |