(JavaScript)Property/getter&setter
Property
propertyは、ある値を表し、その値が別の値に関連付けられている場合にpropertyと呼ばれます.
たとえば、文字列にはlengthという属性があり、このpropertyには文字列内の文字の数を表す整数があります.
MDNで定義された属性
propertyは、通常、データ構造に関連付けられたプロパティを表します.propertyには2つのタイプがあります.データプロパティ(データ属性):値を格納するためのプロパティ.通常使用されるプログラムはデータプログラムです. ビジターProperty(accsor property):値がありません.値ではなく、読み書き中に呼び出される関数のプロシージャを指定できます.アクセス者構成の本質は、値の取得と設定を担当する関数です.しかし、外部コードでは、関数ではなく普通のプログラムのように見えます. 訪問者の割合
アクセスとは、オブジェクト向けのプログラミングにおいて、オブジェクトの外でオブジェクトが持つproperty値を読み取りまたは書き込む方法を提供することである.オブジェクトの外部でオブジェクトを直接操作するpropertyは、データのメンテナンス性を損なう主な原因です.
getterとsetter
アクセス者プロパティはgetter(取得者)メソッドとsetter(設定者)メソッドで表されます.
オブジェクトテキストでは、getterメソッドとsetterメソッドをgetメソッドとsetメソッドとして表すことができます. getterメソッドは、 setterメソッドが getterメソッド
訪問者Propertyはこのような考えから出発した.ビジター・プロパティの使用
関数のように呼び出されるのではなく、通常のプログラムで値にアクセスするように一般的にuserを使用します.fullNameを使用してproperty値を取得できます.
setterメソッド
アクセス者プロパティ記述子
アクセス者プロファイルには、記述子valueおよびwritableを含まずにgetおよびsetという関数が含まれます.
したがって、アクセス者propertyには次の記述子があります. get():パラメータを持たない関数でpropertyを読み込むときに役立ちます. set():propertyに値を書き込むときに呼び出される引数が1の関数です. は、データ・プロパティと同じものを列挙することができる. 構成:データプロパティと同じです. 記述子getとsetをdefinePropertyに渡すことで、fullNameに次のようにアクセス者を作成できます.
通常、名前を読み取り、変更するオブジェクトには、次のように名前を変更する方法setName()が含まれます.
ソース
プロパティgetterとsetter
propertyは、ある値を表し、その値が別の値に関連付けられている場合にpropertyと呼ばれます.
たとえば、文字列にはlengthという属性があり、このpropertyには文字列内の文字の数を表す整数があります.
MDNで定義された属性
propertyは、通常、データ構造に関連付けられたプロパティを表します.propertyには2つのタイプがあります.
アクセスとは、オブジェクト向けのプログラミングにおいて、オブジェクトの外でオブジェクトが持つproperty値を読み取りまたは書き込む方法を提供することである.オブジェクトの外部でオブジェクトを直接操作するpropertyは、データのメンテナンス性を損なう主な原因です.
getterとsetter
アクセス者プロパティはgetter(取得者)メソッドとsetter(設定者)メソッドで表されます.
オブジェクトテキストでは、getterメソッドとsetterメソッドをgetメソッドとsetメソッドとして表すことができます.
let obj = {
get propName() {
// getter, obj.propName을 실행할 때 실행되는 코드
},
set propName(value) {
// setter, obj.propName = value를 실행할 때 실행되는 코드
}
};
obj.propName
を使用してpropertyを読み取りようとしたときに実行される.obj.propName = value
単位で値付けされたときに実行されます.let user = {
name : "john",
surname: "smith",
get fullName() {
return `${this.name} ${this.surname}`'
}
};
alert(user.fullName); // John Smith
外部コードでは、通常のプログラムのようにアクセス者プログラムを使用できます.訪問者Propertyはこのような考えから出発した.ビジター・プロパティの使用
関数のように呼び出されるのではなく、通常のプログラムで値にアクセスするように一般的にuserを使用します.fullNameを使用してproperty値を取得できます.
setterメソッド
let user = {
name: "John",
surname: "Smith",
get fullName() {
return `${this.name} ${this.surname}`;
}
set fullName(value) {
[this.name, this.surname] = value.split(" ");
}
};
// 주어진 값을 사용해 set fullName이 실행됩니다.
user.fullName = "Alice Special"
alert(user.fullName); // Alice Special
alert(user.name); // Alice
alert(user.surname); // Special
これにより、getterメソッドとsetterメソッドが実装され、オブジェクトにはfullNameという「仮想」プロパティがあります.仮想的な番組を読み書きできるが、実際には存在しない.アクセス者プロパティ記述子
アクセス者プロファイルには、記述子valueおよびwritableを含まずにgetおよびsetという関数が含まれます.
したがって、アクセス者propertyには次の記述子があります.
let user = {
name: "John",
surname: "Smith"
};
Object.defineProperty(user, 'fullName', {
get() {
return `${this.name} ${this.surname}`;
},
set(value) {
[this.name, this.surname] = value.split(" ");
}
});
alert(user.fullName); // John Smith
for(let key in user) alert(key); // name, surname
詳細:getterとsetterの使用通常、名前を読み取り、変更するオブジェクトには、次のように名前を変更する方法setName()が含まれます.
let user = {
name: '',
setName(value) {
if (value.length < 4) {
alert("입력하신 값이 너무 짧습니다. 네 글자 이상으로 구성된 이름을 입력하세요.");
return;
}
this.name = value;
}
};
user.setName("Pete");
alert(user.name); // Pete
user.setName(""); // 너무 짧은 이름을 할당하려 함
ただし、getterとsetterを「実際の」property値のパッケージとして使用すると、新しいメソッドを作成することなくproperty値を制御できます.let user = {
get name() {
return this._name;
},
set name(value) {
if (value.length < 4) {
alert("입력하신 값이 너무 짧습니다.");
return;
}
this._name = value;
}
};
user.name = "pete";
alert(user.name); // pete
user.name = "";
userの名前はnameに格納され、getter(user.name)とsetter(user.name=value)でpropertyにアクセスします.ソース
プロパティgetterとsetter
Reference
この問題について((JavaScript)Property/getter&setter), 我々は、より多くの情報をここで見つけました https://velog.io/@yunsungyang-omc/JavaScrpt-프로퍼티-getter-setterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol