JavaScript のオブジェクト指向プログラミングに関する簡単な説明

PHPz
リリース: 2018-09-29 16:31:04
オリジナル
1278 人が閲覧しました

この記事では主に JavaScript オブジェクト指向プログラミングに関する関連情報を紹介します。必要な方は参考にしてください。

ECMA-262 ではオブジェクトを次のように定義しています。「順序付けされていない属性のコレクション。その属性には基本的な値、オブジェクト、または関数を含めることができます。」

オブジェクトを理解する最も簡単な方法は、オブジェクト インスタンスを作成することです。を作成し、それに属性とメソッドを追加します

var person = new Object();
person.name = "Xulei";
person.age = "23";
person.job = "前端工程师";
person.sayName = function () {
    alert(this.name);
}
ログイン後にコピー

次のように記述することもできます

var person = {
     name: "xulei",
     age: 23,
     job: "前端工程",
     sayName: function () {
          alert(this.name)
     }
}
ログイン後にコピー

属性の種類: データ属性を指定し、その属性にアクセスします

1. データ属性。その動作を説明する 4 つの特性があります。

[構成可能]: 属性を削除によって再定義できるかどうかを示します。変更可能かどうか 属性の特性、または属性をアクセサー属性として変更できるかどうか。デフォルト値は true です。
[Enumerable]: デフォルトの for-in を通じて属性を返すことができるかどうかを示します。値は true です。
[Writable]: 属性が for-in を通じて返されるかどうかを示します。デフォルト値は true です。
[Value]: が含まれます。この属性のデータ値。デフォルト値は未定義です。

var person = {
      name: "xulei"
}
ログイン後にコピー

ここで人物オブジェクトが作成され、値は「xulei」です。

属性のデフォルトの特性を変更するには、ECMAScript5 の Object.defineProperty (属性が特定される、属性の名前、記述子オブジェクト)
記述子オブジェクトは構成可能、列挙可能、書き込み可能、​​値である必要があります

var peron = {}
        Object.defineProperty(peron, "name", {
            writable: false,//属性不能被修改
            value: "徐磊-xulei"
        });

        alert(peron.name);//徐磊-xulei
        peron.name = "徐磊";
        alert(peron.name);//徐磊-xulei
ログイン後にコピー

上記の操作は、非厳密モードの代入操作では無視されます。厳密モードでスローされます。 例外

プロパティが構成不可として定義されると、構成可能に戻すことはできません。

ほとんどの場合、Object.defineProperty() メソッドによって提供されるこれらの高度な機能を利用する必要はありません。しかし、JavaScript を理解するのには非常に役立ちます。

読者は、ie8 ではこの方法を使用しないことをお勧めします。

2. 属性にアクセスします。属性には 4 つの特性があります。

[構成可能]: 属性を再定義するために削除できるかどうか、属性の特性を変更できるかどうかを示します。または属性を変更できるかどうか アクセサー属性に変更されます。デフォルト値は true です。
[Enumerable]: 属性が for-in を通じて返されるかどうかを示します。デフォルト値は true です。読み取り時に呼び出される関数;
[Set]: プロパティの書き込み時に呼び出される関数。

上記はこの章の全内容です。その他の関連チュートリアルについては、

JavaScript ビデオ チュートリアル をご覧ください。

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