TIL 08 - Object
入る前に、
めったにない言葉が多い😵 Property、Key、インスタンス、Prototypeなど...
これらの用語を頭の中でよく考えてみましょう.これからはよく知っている単語になります!
Object
JavaScriptでは、元のタイプ以外のすべての値がオブジェクトです.
オブジェクトは、名前と値を組み合わせた複数のデータの集合です.
オブジェクトタイプの値を変数に代入すると、その変数はオブジェクトの\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
sutとrankはpropertyであり、property名またはキーと呼ばれます.
「心」と「A」を値or valueと呼ぶ
オブジェクトの作成
👉🏻 オブジェクトテキストとして作成
💁🏻♀️ しかし、作成者は何ですか?
new演算子でオブジェクトを作成し、作成する関数をコンストラクション関数と呼びます.
作成者とnew演算子によって作成されたオブジェクトを作成者のインスタンスと呼びます.
new演算子を使用してオブジェクトを作成したい関数.
作成者によって作成されたオブジェクトをインスタンスと呼びます.
💁🏻♀️ ジェネレータを使うメリットは何ですか?
ジェネレータは、オブジェクトの作成と初期化に役立ちます.
ジェネレータを使用すると、同じ名前で異なるプロパティ値を持つ複数のオブジェクトを簡単に作成できます.
あり得る!
ジェネレータでthis.keyに関数を代入する参照はメソッドを定義できます
ただし、ジェネレータでメソッドを定義する方法に問題がある
メソッドを含むコンストラクション関数を使用して複数のインスタンスを作成する場合、作成した同じ操作のメソッドのインスタンス数は、作成したメソッドのインスタンス数と同じになるため、対応するメモリが消費されます.
だから….これらの問題は、プロトタイプオブジェクトのメソッドを定義することで解決できます.プロトタイプは次のレッスンでまとめます(処理する内容が多すぎます)😹) 価格
👉🏻 演算子
In演算子は、オブジェクト内に指定されたpropertyがあるかどうかを検索します.
定義と説明は条件文と繰り返し文TILを見てください!
Object.keysは(key)配列のみを作成し、保存されたオブジェクトが所有するpropertyにリストできるproperty名を返します.
上のfor/in文に書いた問題はこのように置き換えることができます
👉🏻 Object.getownPropertyNameメソッド
Object.keysは(key)配列として作成され、格納されたオブジェクトが持つpropertyにリストできないproperty名を返します.
ここではリストできないproperty名は関数名と同じpropertyです!
📌 TMI
見慣れない用語がたくさん出てきたので、パニックになる相手を整理しました...
点記号:obj.property,
かっこ:obj[「property」].かっこ
用語を熟知してこそ、実際のプロジェクトやグーグルに入るときに理解しやすくなります.専門用語を熟知しましょう.💪🏻
めったにない言葉が多い😵 Property、Key、インスタンス、Prototypeなど...
これらの用語を頭の中でよく考えてみましょう.これからはよく知っている単語になります!
Object
JavaScriptでは、元のタイプ以外のすべての値がオブジェクトです.
オブジェクトは、名前と値を組み合わせた複数のデータの集合です.
オブジェクトタイプの値を変数に代入すると、その変数はオブジェクトの\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
var card = {suit="하트",rank="A"}
オブジェクトに含まれるデータ(名前と値のペア)をpropertyと呼びます.sutとrankはpropertyであり、property名またはキーと呼ばれます.
「心」と「A」を値or valueと呼ぶ
オブジェクトの作成
👉🏻 オブジェクトテキストとして作成
var card = {suit="하트",rank="A"}
👉🏻 作成者を使用したオブジェクトの作成function Card (suit,rank){
this.suit = suit;
this.rank = rank;
}
var card = new Card("하트","A");
コンストラクション関数でオブジェクトを作成するときにnew演算子を使用するconsole.log(card);
このコードが無効になると、スーツpropertyにheartが表示され、rank propertyにAが表示されます.(理解できなければ、この概念はを見てみましょう!)💁🏻♀️ しかし、作成者は何ですか?
new演算子でオブジェクトを作成し、作成する関数をコンストラクション関数と呼びます.
作成者とnew演算子によって作成されたオブジェクトを作成者のインスタンスと呼びます.
new演算子を使用してオブジェクトを作成したい関数.
作成者によって作成されたオブジェクトをインスタンスと呼びます.
💁🏻♀️ ジェネレータを使うメリットは何ですか?
ジェネレータは、オブジェクトの作成と初期化に役立ちます.
ジェネレータを使用すると、同じ名前で異なるプロパティ値を持つ複数のオブジェクトを簡単に作成できます.
var card = new Card("하트","A");
var card2 = new Card("클럽","k");
var card3 = new Card("스페이드","2");
💁🏻♀️ 関数をジェネレータpropertyvalueに代入できますか?あり得る!
ジェネレータでthis.keyに関数を代入する参照はメソッドを定義できます
ただし、ジェネレータでメソッドを定義する方法に問題がある
メソッドを含むコンストラクション関数を使用して複数のインスタンスを作成する場合、作成した同じ操作のメソッドのインスタンス数は、作成したメソッドのインスタンス数と同じになるため、対応するメモリが消費されます.
だから….これらの問題は、プロトタイプオブジェクトのメソッドを定義することで解決できます.
👉🏻 演算子
In演算子は、オブジェクト内に指定されたpropertyがあるかどうかを検索します.
const person = {name:"jung"};
console.log("name" in person) // true
console.log("age" in person) // false
console.log("toString" in person) // true
👉🏻 delete演算子let user = {};
user["link"] = true;
console.log(user); // {link:true};
delete user["link"];
console.log(user); // {}
👉🏻 for/in文定義と説明は条件文と繰り返し文TILを見てください!
function getKeys(obj) {
const arry = [];
for (let p in obj) {
arry.push(p);
//console.log(p);
}
return arry;
const travelPlace = { 제주도: 2, 부산: 1, 전주: 1, 속초: 1 };
console.log(getKeys(travelPlace)); // ['제주도', '부산', '전주', '속초']
}
👉🏻 Object.keysメソッドObject.keysは(key)配列のみを作成し、保存されたオブジェクトが所有するpropertyにリストできるproperty名を返します.
上のfor/in文に書いた問題はこのように置き換えることができます
const travelPlace = { 제주도: 2, 부산: 1, 전주: 1, 속초: 1 };
console.log(Object.keys(travelPlace)); // ['제주도', '부산', '전주', '속초']
ずっと簡単になりました!💜👉🏻 Object.getownPropertyNameメソッド
Object.keysは(key)配列として作成され、格納されたオブジェクトが持つpropertyにリストできないproperty名を返します.
ここではリストできないproperty名は関数名と同じpropertyです!
📌 TMI
見慣れない用語がたくさん出てきたので、パニックになる相手を整理しました...
点記号:obj.property,
かっこ:obj[「property」].かっこ
用語を熟知してこそ、実際のプロジェクトやグーグルに入るときに理解しやすくなります.専門用語を熟知しましょう.💪🏻
Reference
この問題について(TIL 08 - Object), 我々は、より多くの情報をここで見つけました https://velog.io/@jjung-developer/TIL-08-Objectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol