プロパティ記述子の使用例

DDD
リリース: 2023-12-06 14:31:45
オリジナル
1476 人が閲覧しました

プロパティ記述子は JavaScript の重要な概念であり、オブジェクトのプロパティを記述するために使用されます。プロパティ記述子を使用すると、オブジェクトのプロパティを取得、変更、作成できます。以下に、プロパティ記述子の使用例をいくつか示します。

例 1: プロパティのプロパティ記述子の取得

プロパティ名を持つオブジェクト person があると仮定します。このプロパティのプロパティ記述子を取得する Object.getOwnPropertyDescriptor( ) メソッド:

let person = {  
  name: 'Alice'  
};  
  
let desc = Object.getOwnPropertyDescriptor(person, 'name');  
  
console.log(desc);  
// 输出:  
//   {  
//     value: 'Alice',  
//     writable: true,  
//     enumerable: true,  
//     configurable: true,  
//     get: undefined,  
//     set: undefined  
//   }
ログイン後にコピー

上記のコードでは、Object.getOwnPropertyDescriptor(person, 'name') は、name プロパティを説明するプロパティ記述子を含むオブジェクトを返します。人物オブジェクトです。

例 2: プロパティ記述子を使用した新しいプロパティの作成

プロパティ記述子を使用して新しいプロパティを作成できます。たとえば、person オブジェクトに新しいプロパティ age を作成するとします。

let person = {};  
  
Object.defineProperty(person, 'age', {  
  value: 25,  
  writable: true,  
  enumerable: true,  
  configurable: true,  
  get: function() { return this._age; },  
  set: function(newVal) { this._age = newVal; }  
});  
  
console.log(person.age); // 输出:25
ログイン後にコピー

上記のコードでは、Object.defineProperty(person, 'age', { ... }) という名前の新しいプロパティを定義します。新しいプロパティを作成し、プロパティ記述子を使用してそれを記述します。これで、person.age にアクセスできるようになり、person.age を設定することで age プロパティの値を変更できるようになりました。

例 3: プロパティ記述子を使用して既存のプロパティを変更する

プロパティ記述子を使用して、既存のプロパティのプロパティ記述子を変更することもできます。たとえば、person オブジェクトの name プロパティのプロパティ記述子を変更するとします。

let person = {  
  name: 'Alice'  
};  
  
Object.defineProperty(person, 'name', {  
  value: 'Bob',  
  writable: true,  
  enumerable: true,  
  configurable: true,  
  get: function() { return this._name; },  
  set: function(newVal) { this._name = newVal; }  
});  
  
console.log(person.name); // 输出:'Bob'
ログイン後にコピー

上記のコードでは、Object.defineProperty() メソッドを使用して、name プロパティのプロパティ記述子を変更します。人物オブジェクトの。これで、person.name にアクセスできるようになり、person.name を設定することで name プロパティの値を変更できるようになりました。この例では、プロパティの value 属性を変更し、それによってプロパティの実際の値も変更されることに注意してください。

以上がプロパティ記述子の使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート