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 の解凍バージョンをインストールして構成する方法のチュートリアル
最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。 &...
目次概要4つの例例1: 誕生日で説明する約束の基本例2: 数字当てゲーム例3: Web APIから国...
このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...
クッキーこれはクライアント ブラウザの状態を保存するための標準的な方法です。Cookie はブラウザ...
問題: MySQL がデータ ファイルを保存するパーティションの容量が小さく、現在いっぱいになってい...
x-ua-compatible は、IE ブラウザがページを解析およびコンパイルするためのモデルを...
「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...
序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...
XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...
MySQL バックアップコールドバックアップ:停止服務進行備份,即停止數據庫的寫入ホットバックアップ...
目次JS はファイルを読み取る FileReader書類イベントとメソッド基本的な使い方イベント処理...
目次序文1. どのような変数が促進されますか? 2. 可変プロモーションがあるのはなぜですか? (1...
序文この記事は私自身の製作過程の簡単な記録です。練習中に質問があれば、一緒に話し合うことができます。...
<area> タグは主にイメージマップで使用されます。イメージマップにアクティブ領域 (...
目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...