備忘録的プログラミングリファレンス

defineProperty()、defineProperties()、getOwnPropertyDescriptor()、getOwnPropertyDescriptors() メソッド

Object.defineProperty()Object.defineProperties()Object.getOwnPropertyDescriptor()Object.getOwnPropertyDescriptors()

 defineProperty()、defineProperties()、getOwnPropertyDescriptor()、getOwnPropertyDescriptors() は、Object の静的メソッドです。
 これらのメソッドはオブジェクトのプロパティの編集の可/否、削除の可/否、配列として扱えるか/否かといったディスクリプタを扱います。

defineProperty()
プロパティのディスクリプタを操作。第1引数にオブジェクト名、第2引数にプロパティ名、第3引数にディスクリプタを指定
defineProperties()
プロパティのディスクリプタを操作。第1引数にオブジェクト名、第2引数にプロパティ名とディスクリプタの組み合わせを指定
getOwnPropertyDescriptor()
プロパティのディスクリプタを取得。第1引数にオブジェクト名、第2引数にプロパティ名を指定
getOwnPropertyDescriptors()
プロパティのディスクリプタを取得。引数にオブジェクト名を指定

 プロパティごとのディスクリプタには以下のプロパティがあります。

プロパティ摘要
configurableプロパティの削除ができるか/否か。true の場合ディスクリプタが変更できる
enumerable配列として扱えるか( for...in など)
valueプロパティの値
writableプロパティが変更できるか/否か

defineProperty()

Object.defineProperty()

 defineProperty() メソッドは、オブジェクトのプロパティのディスクリプタを変更する Object の静的メソッドです。

defineProperty()
Object.defineProperty( example_obj, "prm00", {
	value : 100,
	writable : false
} );

詳しくはExampleを参照してください

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド defineProperty() にオブジェクト名とそのプロパティとプロパティのディスクリプタを指定します。

Object.defineProperty( O, P, Attributes );

引数(Parameter Values)

Value摘要
Oオブジェクト名
Pプロパティ名
Attributesディスクリプタ

返り値(Return Values)

 第1引数で渡したオブジェクト。

Example

 defineProperty() の例です。

defineProperties()

Object.defineProperties()

 defineProperties() メソッドは、オブジェクトのプロパティのディスクリプタを変更する Object の静的メソッドです。

defineProperties()
Object.defineProperty( example_obj, {
	prm00 : {
		value : 100,
		writable : false
	}
} );

詳しくはExampleを参照してください

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド defineProperty() にオブジェクト名とそのプロパティとプロパティのディスクリプタを指定します。

Object.defineProperties( O, Properties );

引数(Parameter Values)

Value摘要
Oオブジェクト名
Propertiesプロパティ名とそのディスクリプタの組み合わせ

返り値(Return Values)

 第1引数で渡したオブジェクト。

Example

 defineProperties() の例です。

getOwnPropertyDescriptor()

Object.getOwnPropertyDescriptor()

 getOwnPropertyDescriptor() メソッドは、オブジェクトのプロパティのディスクリプタ情報を取得する Object の静的メソッドです。

getOwnPropertyDescriptor() メソッド
console.log( Object.getOwnPropertyDescriptor( example_obj, "prm00" ) );

詳しくはExampleを参照してください

 似たメソッドに getOwnPropertyDescriptors() があります。

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド getOwnPropertyDescriptor() にオブジェクト名とそのプロパティを指定します。

let obj_prm = Object.getOwnPropertyDescriptor( O, P );

引数(Parameter Values)

Value摘要
Oオブジェクト名
Pオブジェクトのプロパティ名

返り値(Return Values)

 getOwnPropertyDescriptor() の返り値は第1引数で指定したオブジェクトのプロパティ自身のディスクリプタです。
 以下にそのディスクリプタの概要を示します。

プロパティ摘要
configurableプロパティの削除ができるか/否か。true の場合ディスクリプタが変更できる
enumerable配列として扱えるか( for...in など)
valueプロパティの値
writableプロパティが変更できるか/否か

Example

 getOwnPropertyDescriptor() の例です。

getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors()

 getOwnPropertyDescriptors() メソッドは、オブジェクトのプロパティに関するディスクリプタ情報を取得する Object の静的メソッドです。

getOwnPropertyDescriptors() メソッド
console.log( Object.getOwnPropertyDescriptors( example_obj ) );

詳しくはExampleを参照してください

 似たメソッドに getOwnPropertyDescriptor() があります。

ページ内 Index

Syntax

in JavaScript

  Object の静的メソッド getOwnPropertyDescriptors() にオブジェクト名とそのプロパティを指定します。

let obj_prm = Object.getOwnPropertyDescriptors( O );

引数(Parameter Values)

Value摘要
Oオブジェクト名

返り値(Return Values)

 getOwnPropertyDescriptors() の返り値は第1引数で指定したオブジェクトのすべてのプロパティとそれらのディスクリプタ情報を返します。
 以下にそのディスクリプタの概要を示します。

ディスクリプタ摘要
configurableプロパティの削除ができるか/否か。true の場合ディスクリプタが変更できる
enumerable配列として扱えるか( for...in など)
getゲッターとして関連付けられた関数
setセッターとして関連付けられた関数
valueプロパティの値
writableプロパティが変更できるか/否か

Example

 getOwnPropertyDescriptors() の例です。

prompt() メソッド

window.prompt()

 prompt()は、入力を受付けるダイアログの表示用メソッドです。

 OKキャンセルボタンを備えています。返り値は DOMString 型になります。

prompt() メソッド
var re_ = prompt( message, value );

詳しくは Example を参照してください

 キャンセルボタンが付くために返り値がnullである場合があります。パスワードやIDを期待するような場合は扱いに注意が必要です。

ページ内 Index

Syntax

in JavaScript

返り値はDOMString型です。

DOMString = prompt( message, value );

引数(Parameter Values)

Value摘要
messageダイアログに表示されるメッセージテキスト
valueダイアログの入力欄に表示されるテキスト

返り値(Return Values)

Type摘要
DOMStringOKの場合は入力された値。キャンセルの場合はnull

Example