いいえ、オブジェクトはそれ以上のものです。
オブジェクトは確かにマップ/辞書ですが、さらにすべてのオブジェクトは別のオブジェクトからいくつかのプロパティ (キーと値のペア) を継承します。その別のオブジェクトはプロトタイプと呼ばれます。
例えば:
var o = {
x: 1
};
console.log(o.x === undefined); // false, obviously
console.log(o.toString === undefined); // false, inherited from prototype
最も一般的なプロトタイプは、コンストラクター関数を使用してオブジェクトを作成することによって設定されます。
var d = new Date();
console.log(d.hasOwnProperty('getYear')); // false, it's inherited
編集:
コンストラクター関数を使用してプロトタイプがどのように機能するかを次に示します (これは、JS で OOP を実行する方法の1 つです)。
// constructor function
// starts with capital letter, should be called with new
var Person = function (name, age) {
// set properties of an instance
this.name = name;
this.age = age;
};
// functions to be inherited are in the prototype
Person.prototype.sayHello = function () {
return this.name + ' is ' + this.age + ' old';
};
// new:
// - creates the object
// - sets up inheritance from prototype
// - sets the object as the context of the constructor function call (this)
var p = new Person('Jason', 27);
console.log(p.sayHello());