Array プロトタイプに新しいメソッドが追加されたプロジェクトに取り組んでいます。
Array.prototype.addOrRemove = function(value) {
var index = _.indexOf(this, value);
if (index === -1) {
this.push(value);
} else {
this.splice(index, 1);
}
return this;
};
新しい値を追加するか (配列に存在しない場合)、それを削除します (存在しない場合)。奇妙なことに、次のように入力すると次のようになります。
console.log([]);
次の出力が得られます (chrome JS コンソールで):
[addOrRemove: function]
そのようなコンソールログには値のみが存在するはずだと思いました。私は何か間違ったことをしましたか、それとも正常な動作ですか (とにかく奇妙に思えます)? 説明をいただければ幸いです。