[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer [Back]  [Original]

- JavaScript | MDN

MDN Web Docs

View in English Always switch to English

Baseline

20157

(object initializer) 0 ({}) Object.create() new

const object1 = { a: "foo", b: 42, c: {} };

console.log(object1.a);
// : "foo"

const a = "foo";
const b = 42;
const c = {};
const object2 = { a: a, b: b, c: c };

console.log(object2.b);
// : 42

const object3 = { a, b, c };

console.log(object3.a);
// : "foo"

js
o = {
  a: "foo",
  b: 42,
  c: {},
  1: "",
  "foo:bar": "",

  shorthandProperty,

  method(parameters) {
    // 
  },

  get property() {},
  set property(value) {},

  []: "",

  __proto__: prototype,

  ...spreadProperty,
};

Object

JSON

JavaScript Object Notation (JSON)

  • JSON "property": value
  • JSON truefalsenull JSON JSON Map RegExp
  • JSON "__proto__"

JSON JSON __proto__ JSON.parse() __proto__ JSON

js
console.log(JSON.parse('{ "__proto__": 0, "__proto__": 1 }')); // {__proto__: 1}
console.log({ "__proto__": 0, "__proto__": 1 }); // SyntaxError: Duplicate __proto__ fields are not allowed in object literals

console.log(JSON.parse('{ "__proto__": {} }')); // { __proto__: {} }
console.log({ "__proto__": {} }); // {} (with {} as prototype)

js
const object = {};

key: value

"foo""age""baz" 3 "bar" 42

js
const object = {
  foo: "bar",
  age: 42,
  baz: { myProp: 12 },
};

js
object.foo; // "bar"
object["age"]; // 42
object.baz; // {myProp: 12}
object.baz.myProp; // 12

js
const a = "foo";
const b = 42;
const c = {};

const o = {
  a: a,
  b: b,
  c: c,
};

js
const a = "foo";
const b = 42;
const c = {};

// 
const o = { a, b, c };

// In other words,
console.log(o.a === { a }.a); // true

js
const a = { x: 1, x: 2 };
console.log(a); // {x: 2}

ES2015

js
const o = {
  property: function (parameters) {},
  get property() {
    return 1;
  },
  set property(value) {},
};

"function"

js
// 
const o = {
  property(parameters) {},
};

js
const o = {
  *generator() {
    // 
  },
};

ES5 ES5

js
const o = {
  generator: function* () {
    // 
  },
};

[]

js
// 
let i = 0;
const a = {
  [`foo${++i}`]: i,
  [`foo${++i}`]: i,
  [`foo${++i}`]: i,
};

console.log(a.foo1); // 1
console.log(a.foo2); // 2
console.log(a.foo3); // 3

const items = ["A", "B", "C"];
const obj = {
  [items]: "Hello",
};
console.log(obj); // A,B,C: "Hello"
console.log(obj["A,B,C"]); // "Hello"

const param = "size";
const config = {
  [param]: 12,
  [`mobile${param.charAt(0).toUpperCase()}${param.slice(1)}`]: 4,
};

console.log(config); // {size: 12, mobileSize: 4}

Object.assign() prototype

js
const obj1 = { foo: "bar", x: 42 };
const obj2 = { foo: "baz", y: 13 };

const clonedObj = { ...obj1 };
// { foo: "bar", x: 42 }

const mergedObj = { ...obj1, ...obj2 };
// { foo: "baz", x: 42, y: 13 }

__proto__: value "__proto__": value __proto__ null [[Prototype]] null

__proto__ Object.prototype.__proto__ Object.create [[Prototype]]

js
const obj1 = {};
console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true

const obj2 = { __proto__: null };
console.log(Object.getPrototypeOf(obj2)); // null

const protoObj = {};
const obj3 = { "__proto__": protoObj };
console.log(Object.getPrototypeOf(obj3) === protoObj); // true

const obj4 = { __proto__: "not an object or null" };
console.log(Object.getPrototypeOf(obj4) === Object.prototype); // true
console.log(Object.hasOwn(obj4, "__proto__")); // false

js
const __proto__ = "variable";

const obj1 = { __proto__ };
console.log(Object.getPrototypeOf(obj1) === Object.prototype); // true
console.log(Object.hasOwn(obj1, "__proto__")); // true
console.log(obj1.__proto__); // "variable"

const obj2 = { __proto__() { return "hello"; } };
console.log(obj2.__proto__()); // "hello"

const obj3 = { ["__proto__"]: 17 };
console.log(obj3.__proto__); // 17

//  "__proto__" 
const obj4 = { ["__proto__"]: 17, __proto__: {} }; // {__proto__: 17} (with {} as prototype)
const obj5 = {
  ["__proto__"]: 17,
  __proto__: {},
  __proto__: null, // SyntaxError:  __proto__ 
};
const obj6 = {
  ["__proto__"]: 17,
  ["__proto__"]: "hello",
  __proto__: null,
}; // {__proto__: "hello"} (null )
const obj7 =  {
  ["__proto__"]: 17,
  __proto__,
  __proto__: null,
}; // {__proto__: "variable"} (null )

ECMAScript 2027 LanguageSpecification
# sec-object-initializer


Web Proxy Viewer  |  New URL  |  Original Page