オブジェクトの定義と宣言
- 定義:順序のないデータの集まり
- 宣言:以下の2種類があります。
let obj1 = new Object({ name: 'jackey', age: 18 }); //
let obj2 = { name: 'jackey', age: 18 }; //
- 詳細:引用符を省略してもキー名は文字列のままです。
- 注意
- obj["property"]はobj.propertyと等しく、これはpropertyを意味します。
- obj["property"]はobj[property]とは等しくありません。
オブジェクトの属性を削除
- delete: オブジェクトの属性名と値を削除できます。
obj.property = undefined
プロパティ名を削除することはできません。
- 属性を削除する2つの方法↓。
delete obj.property; //
delete obj["property"]; //
オブジェクトのプロパティを表示
- すべてのプロパティの名前を見るには:Object.keys(obj)
- 自己 + 共有プロパティを表示: console.log(obj)
- 属性がオブジェクトのプロパティであるかどうかをチェックします:
obj.hasOwnProperty('property')
- 属性がオブジェクトの属性であるかどうかのチェック: objの'name' 追記:共有属性、すなわちプロトタイプ上にある属性
オブジェクトへのプロパティの変更または追加
- 直接割り当て
既存のプロパティを割り当てることは変更であり、既存のプロパティを割り当てることは追加です。
let obj = { name:'pray' };
obj.name = 'frank'; //属性の修正 I
obj['name'] = 'frank'; //属性を修正する
obj.age = 18; //属性の追加 I
obj['age'] = 18; //属性の追加
Object.assign(obj, {age: 18, gender: 'man'}) //一括割り当て
let obj ={}
obj.__proto__.toString = 'xxx'; //方法1(推奨しない)__proto__
Object.prototype.toString = 'xxx'; //
//モード 1 修正__proto__(推奨されない)
let obj = {name:'frank'}
let obj2 = {name: 'jack'}
let common = {kind: 'human'}
obj.__proto__ = common
obj2.__proto__ = common
//方法2 オブジェクトを使用する.creat()API
let obj = Object.creat(common); //共通オブジェクトのプロパティを、代わりにobjオブジェクトに継承する。__proto__
obj.name = 'frank'