コード スニペット 1:
<script>
function Person(lastName, firstName){
this.lastName = lastName;
this.firstName = firstName;
}
var DnnyGdmn = new Person("Goodman","Danny");
var DvdFlngn = new Person("Flanagan","David");
function Book(title, pages, price){
this.title = title;
this.pages = pages;
this.price = price;
this.authors = new Array(arguments.length-3);
console.log(arguments);
for(i = 0; i < arguments.length - 3; i++){
this.authors[i] = arguments[i + 3];
}
}
var JavaNut = new Book("Java Foundation Classes in a Nutshell", 731, 29.95, DvdFlngn);
var JSTDR = new Book("Javascript: The Definitive Guide (3rd Edition)", 776, 39.95, DvdFlngn);
</script>
Firefox firebug->console->all では、次のように表示されます。
["Java Foundation Classes in a Nutshell", 731, 29.95, Person { lastName="Flanagan", firstName="David"}]
["Javascript: The Definitive Guide (3rd Edition)", 776, 39.95, Person { lastName="Flanagan", firstName="David"}]
コード スニペット 2:
<script>
function Person(lastName, firstName){
this.lastName = lastName;
this.firstName = firstName;
}
var DnnyGdmn = new Person("Goodman","Danny");
var DvdFlngn = new Person("Flanagan","David");
</script>
Firefox firebug->console->all では何も表示されません。
質問:
どちらのコード スニペットも同じことを行い、特定のオブジェクトのインスタンスを作成しますが、なぜコード 1 はコンソールに何かを書き込み、コード 2 はそうしないのでしょうか?