私は次のようなオブジェクトを持っています
var vehicle = {
car:function()
{
console.log("Vroom");
},
bus:function()
{
console.log("Grrr");
}
};
オブジェクト車両のプロトタイプを作成して、さらに機能を追加するにはどうすればよいですか? 「自転車」と呼ばれるもう1つの機能があるように?
私は次のようなオブジェクトを持っています
var vehicle = {
car:function()
{
console.log("Vroom");
},
bus:function()
{
console.log("Grrr");
}
};
オブジェクト車両のプロトタイプを作成して、さらに機能を追加するにはどうすればよいですか? 「自転車」と呼ばれるもう1つの機能があるように?
「私はこのようなオブジェクトを持っています」と言うとき、オブジェクト リテラルを使用して、この正確な方法でそのオブジェクトを作成することを意味しますか、それともオブジェクト リテラルを使用してオブジェクトがどのように見えるかを説明するだけですか?
最初のケースでは、RGraham または SrikanthManian のソリューションをそのまま使用できます。
2 番目のケースでは、作成方法が正確にわからないオブジェクト (つまり、サード パーティのライブラリからのもの) があると仮定すると、実際にはそのコンストラクタ関数のプロトタイプを操作して、新しい関数を使用できるようにすることができます。すべてのvehicle
インスタンス:
vehicle.constructor.prototype.bike = function () {
console.log("bike");
};
このアプローチの唯一の問題は、 をvehicle.constructor
指している場合、オブジェクトObject
だけでなく、すべてのオブジェクトがこの関数を継承することvehicle
です。したがって、より安全な方法は次のとおりです。
if (vehicle.constructor !== Object) {
vehicle.constructor.prototype.bike = function () {
console.log("bike");
};
}