JavaScript 改ざん防止オブジェクトこれはめったに使われないし、個人的にはあまり役に立たないと思います。でも、見せびらかすためのツールとしては使えますよ、ハハ、始めましょう。 。 1. 拡張不可能なオブジェクトデフォルトでは、オブジェクトは拡張可能であり、プロパティとメソッドをいつでも追加できます。 Object.preventExtensions(object) メソッドを使用してこの動作を変更し、オブジェクトにプロパティやメソッドを追加できなくなるようになりました。例えば: var person={name : 'jack'}; オブジェクト.preventExtensions(人); 人.年齢=13; console.log(person.age);///未定義 オブジェクトに新しいメンバーを追加することはできませんが、既存のメンバーはまったく影響を受けず、既存のメンバーを変更および削除することは可能です。さらに、isExtensible() メソッドを使用して、オブジェクトが拡張可能かどうかを判断することもできます。例えば: var person={name : 'jack'}; アラート(Object.isExtensible(person)); //true オブジェクト.preventExtensions(人); alert(Object.istExtensible(person)); //false 2. 封印された物体ECMAScript 5 でオブジェクトに対して定義されている 2 番目の保護レベルは、シールされたオブジェクトです。オブジェクトをシールされたオブジェクトに変更するには、Object.seal(object) メソッドを使用します。シールされたオブジェクトは拡張可能ではなく、既存のメンバーの [[configurable]] 属性は false に設定されます。つまり、Object.defineProperty() を使用してデータを変更し、そのプロパティにアクセスすることはできないため、プロパティとメソッドを削除することはできません。また、その逆も同様です。ただし、属性値は変更できます。 var person = {name:'tom'}; オブジェクト.seal(人); 人.年齢=12; console.log(person.age);//未定義 person.name を削除します。 console.log(人.名前);//トム person.name="ジャック"; alert(person.name);//ジャック オブジェクトがシールされているかどうかを判断するには、Object.isSealed() メソッドを使用します。シールされたオブジェクトは拡張できないため、Object.istExtensible() を使用してシールされたオブジェクトを検出した場合も、false (つまり、拡張できない) が返されます。 var person = {name:'tom'}; alert(Object.isExtensible(person)); ///true、拡張可能 alert(Object.isSealed(person)); ////false、暗号化されていない Object.seal(person); alert(Object.isExtensible(person)); ///false、拡張可能ではありません alert(Object.isSealed(person)); ////true、すでに暗号化されています 3. 凍った物体最も厳格な改ざん防止レベルは、凍結オブジェクトです。凍結オブジェクトは拡張も封印もされず、オブジェクトのデータ プロパティの [[Writable]] 属性は false に設定されます。set 関数が定義されている場合、アクセサ プロパティは引き続き書き込み可能です。これで、Object.freeze(object) メソッドを使用して、オブジェクトを凍結オブジェクトに変更できます。 var person={name : 'tony'}; オブジェクトをフリーズします(人)。 人.年齢=12; alert(person.age);//未定義 person.name を削除します。 alert(person.name);//tony person.name = 'ジャック'; alert(person.name);//tony オブジェクトが凍結オブジェクトであるかどうかを検出するには、Object.isFrozen() メソッドを使用します。凍結オブジェクトは非拡張オブジェクトとシールオブジェクトの両方であるため、isExtensible() を使用します。 var person = {name:'tom'}; alert(Object.isExtensible(person));///true、拡張可能 alert(Object.isSealed(person));////false、暗号化されていません alert(Object.isFrozen(person));////false、暗号化されていません Object.seal(person); alert(Object.isExtensible(person)); ///false、拡張可能ではありません alert(Object.isSealed(person)); ////true、すでに暗号化されています alert(Object.isFrozen(person)); ////true、すでに凍結されています 以上がJavaScript改ざん防止オブジェクトの使用例の詳しい内容です。JavaScript改ざん防止オブジェクトの詳細については、123WORDPRESS.COMの他の関連記事もご覧ください。 以下もご興味があるかもしれません:
|
<<: Linux で Tomcat を実行するいくつかの方法の説明
>>: Windows 10 で MySql の解凍バージョンをインストールして構成する方法のチュートリアル
目次序文アドバンテージ:欠点: 1. レスポンシブな使用効果2. ステータスが同期されていないRea...
この記事では、ネイティブ JS で実装された特殊効果メッセージ ボックスを紹介します。効果は次のとお...
varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...
新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...
目次安定スロットリング要約する安定自動ドアは人を感知してドアを開け、5 秒間のカウントダウンを開始し...
プライベート Docker レジストリのインストールとデプロイは、Docker テクノロジーを導入、...
目次序文単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...
通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...
HTML ページでは、ボタンやテキスト ボックスなどの視覚要素にフォーカスを設定したり、フォーカスを...
1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...
最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...
目次1. Javascript とは何ですか? 2. DOMとは何か3. JSコードの実行方法4. ...
目次Vueカスタムディレクティブカスタムディレクティブフック機能出力関連属性アプリケーション例要約す...
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...