function logMsg(str, noBreak) { var msg = $('#message'); msg.append(str); if (!noBreak) // if noBreak is asigned a value (any value), <br /> won't be output msg.append('<br />'); } // 方法一 var Chessman1 = { name: "empty", location: {}, isAbroad: false }; logMsg('<br />方法一: Chessman1 的建構子是:<br /> ' + Chessman1.constructor); // 方法二 function Chessman2 (name, location, isAbroad) { this.name = name; this.location = location; this.isAbroad = isAbroad; this.color = 'Black'; } Chessman2.prototype = { //constructor: Chessman2, // 拿掉這一行開頭的註解以覆寫建構子; 你可以觀察到差異。在實際使用時, 其建構子必須被覆寫 move: function () { logMsg(this.name + ' moved.'); } } var Soldier = new Chessman2('Soldier', [], false); logMsg('<br />方法二: Soldier 的建構子是:<br /> ' + Soldier.constructor); // 方法三 var Chessman3 = function() { name = "empty"; location = {}; isAbroad = false; }; logMsg('<br />方法三: Chessman3 的建構子是:<br />' + Chessman3.constructor); logMsg('Chessman3 的 prototype 是:<br />' + Chessman3.prototype.constructor); // 方法四 function Chessman4 () { name = "empty"; location = {}; isAbroad = false; }; logMsg('<br />方法四: Chessman4 的建構子是:<br /> ' + Chessman4.constructor); logMsg('Chessman4 的 prototype 是:<br />' + Chessman4.prototype.constructor);
<div id="message" />
body { font-family: Verdana, Arial; font-size: 1.1em; }