なぜgettersとsetters関数を使うのか
9834 ワード
ゲッターとセッター機能は、総称してアクセッサ機能として知られています.前の2つの記事で、私はどのように作成したかについて話しました
しかし、なぜゲッターとセッターも最初に使うのですか?
理由は二つある. 構文上の理由 カプセル化
配列の長さを取得しようとすると、
If
どうかわかりません
使用しているので
たとえば、カルーセルを持っていると言うと、現在のスライドを取得します.次の2つのオプションがあります. 通常の関数を作成する getter関数を作成する 以下にコードがどのようになるかを示します.
第二に、getter関数を使用する場合は、プロパティを呼び出して使用します.通常の関数を使用する場合は、括弧を書くことでメソッドを呼び出す必要があります.
フリップ側では、通常の関数の代わりにsetter関数を使用することもできます.
さて、キーはコードの意図を伝えるために使用getterとsetter関数です. ゲットゲッター セッター 方法は残りを行う このセットの設定を取得すると、getterとsetter関数で書かれたコードが解析されやすくなります.
値を取得し、値を設定し、プロセスを実行する例を示します.
ゲッターセットとセッターを使用すると、そのコード行が値を取得しているかどうか、値を変更するか、プロセスを実行するかどうかを確認しやすくなります.あなたも、あなたが書いたものの詳細に注意を払う必要はありません.
はい、それは小さいことです.しかし、小さいものは増します.それが追加すると、それは主要な頭脳を節約できます.
つ目の理由は、安全なコードを作成する能力です.
あなたが車を持っているとしましょう.車に燃料がある.車が工場から出るとき、それは50リットルの燃料を持っています.
車の燃料の容量が100であるとしましょう.彼らは任意の量を追加することができますし、車を破る.
あなたがセッター機能を使用するならば
構文上の理由アクセサ関数で作成されたコードを読みやすくし、高速化する カプセル化.アクセサー関数でより安全なコードを作成できます. それだ!
読書ありがとう.この記事はもともと投稿されたmy blog . サインアップするmy newsletter あなたがより良いフロントエンド開発者になるために、より多くの記事が欲しいならば.
mix
なぜなら、getterとsetter関数を使いたかったからです.しかし、なぜゲッターとセッターも最初に使うのですか?
理由は二つある.
構文上の理由
配列の長さを取得しようとすると、
array.length
. このlength
プロパティは、getter関数のように動作します.それはリアルタイムであなたに値を返します.If
length
単純なプロパティです.length
配列に何個の項目を追加しても、残ります.以来length
配列の長さに応じて値を変更するlength
単純なプロパティではありません.どうかわかりません
length
がgetter関数です.それはどこにも文書化されていなかったが、私はそれを疑う.使用しているので
array.length
(ゲッター関数のように動作する)値を取得するには、値を取得するために他のgetter関数を使用しないでください.我々はすでにこの構文に精通しています.たとえば、カルーセルを持っていると言うと、現在のスライドを取得します.次の2つのオプションがあります.
const carousel = {
// Option 1: Normal function
getCurrentSlide () {/* ... */},
// Option 2: Getter function
get currentSlide () {/* ...*/}
}
まず、getter関数を定義する余分な仕事がないことがわかります.では、なぜ1を作成しないのですか?第二に、getter関数を使用する場合は、プロパティを呼び出して使用します.通常の関数を使用する場合は、括弧を書くことでメソッドを呼び出す必要があります.
// Normal function
const currentSlide = carousel.getCurrentSlide()
// Getter function
const currentSlide = carousel.currentSlide
私はゲッター機能のバージョンは、初心者、ターサー、理解しやすいと思います.それは、私により意味をなします.フリップ側では、通常の関数の代わりにsetter関数を使用することもできます.
// Normal function
carousel.setCurrentSlide(4)
// Setter function
carousel.currentSlide = 4 // Uses a Setter function
繰り返しますが、セッター機能バージョンは私にぴったりです.私は既にこの構文に慣れています=
. さて、キーはコードの意図を伝えるために使用getterとsetter関数です.
値を取得し、値を設定し、プロセスを実行する例を示します.
const value = object.getValue() // Gets value
object.setValue(5) // Sets value
object.method() // Runs a process
そして、ゲッターとセッター機能で同じバージョンは、ここにあります.const value = object.value // Getter
object.value = 5 // Setter
object.method() // Runs a method
どれがあなたにより明確ですか?私にとって、ゲッターとセッターバージョンはそうです.ゲッターセットとセッターを使用すると、そのコード行が値を取得しているかどうか、値を変更するか、プロセスを実行するかどうかを確認しやすくなります.あなたも、あなたが書いたものの詳細に注意を払う必要はありません.
はい、それは小さいことです.しかし、小さいものは増します.それが追加すると、それは主要な頭脳を節約できます.
カプセル化
つ目の理由は、安全なコードを作成する能力です.
あなたが車を持っているとしましょう.車に燃料がある.車が工場から出るとき、それは50リットルの燃料を持っています.
function Car () {
const fuel = 50
}
車は、彼らが残っているどのくらいの燃料を知る必要があります.つの方法は、燃料プロパティ全体を公開することです.function Car () {
const fuel = 50
return {
fuel
}
}
const car = Car()
console.log(car.fuel) // 50
しかし、あなたが露出するときfuel
プロパティこの方法では、ユーザーが変更を行うことができますfuel
制限なしで.車の燃料の容量が100であるとしましょう.彼らは任意の量を追加することができますし、車を破る.
car.fuel = 3000
console.log(car.fuel) // 3000
あなたがゲッター機能を使用するならば、彼らはこれを変えることができませんfuel
プロパティ.function Car () {
const fuel = 50
return {
get fuel () { return fuel }
}
}
const car = Car()
car.fuel = 3000
console.log(car.fuel) // 50
これをさらに押しましょう.あなたがセッター機能を使用するならば
fuel
, 可能な制限の保護ガードを作成できます.ここでは車の燃料が100を超えないことを確認します.function Car () {
let fuel = 50
return {
get fuel () { return fuel }
set fuel (value) {
fuel = value
if (value > 100) fuel = 100
}
}
}
const car = Car()
car.fuel = 3000
console.log(car.fuel) // 100
つまり、二つの理由からゲッターセッター関数が好きです.読書ありがとう.この記事はもともと投稿されたmy blog . サインアップするmy newsletter あなたがより良いフロントエンド開発者になるために、より多くの記事が欲しいならば.
Reference
この問題について(なぜgettersとsetters関数を使うのか), 我々は、より多くの情報をここで見つけました https://dev.to/zellwk/why-use-getters-and-setters-functions-5a5fテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol