たとえば、配列から長さを指定できることを学びました。
var list = [1, 2, 3, 4, 5];
list.length = 3;
console.log(list); // => [1, 2, 3]
コンストラクタがオブジェクトを返す場合、newは構築されたオブジェクトの代わりにこのオブジェクトも返します。
var name, realCat, evilCat;
function Cat(name) {
realCat = this ;
this .name = name;
return {name: 'churchill' };
}
evilCat = new Cat( 'barsik' );
console.log(evilCat.name); // => 'churchill'
console.log(realCat.name); // => 'barsik'
console.log(name); // => undefined
ネストされた関数のこれがグローバルオブジェクトを参照すること:
var name;
new function Cat() {
this .name = 'barsik' ;
( function () {
console.log( this .name); // => undefined
})();
}
引数の変更により、対応する仮関数パラメーターが変更されること:
( function (a) {
console.log(a); // => 'a'
arguments[0] = 'b' ;
console.log(a); // => 'b'
})( 'a' );
再度リンク: JavaScriptガーデン