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 の解凍バージョンをインストールして構成する方法のチュートリアル
今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...
アンカーリンクをクリックするとスムーズにスクロールし、自由にトップ位置に調整できます。 1. アンカ...
覗き見の問題サーバーでは、IIS サービスが複数のサイトを展開していると仮定すると、サイトの 1 つ...
目次1. これからお話しするのは、フロントエンド担当者がvue-cliで完了できるソリューション、デ...
通常、私たちが構築する Docker イメージはサイズが大きく、多くのディスク領域を占有します。コン...
問題の説明(キープアライブとは何か)キープアライブ 名前の通り、アクティブな状態を維持します。誰が活...
目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...
参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いで...
最近、Docker の学習や実際の運用で多くの問題に遭遇したので、それを記録するためにブログを書きま...
<a href = "http://" style = "cur...
目次序文1. Dockerをインストールする2. Dapr CLIをインストールする3. Net6 ...
効果は以下のとおりです。 コードは次のとおりです (クリックすると展開してソース コードが表示されま...
この記事では、例を使用して、MySQL 外部キーの基本的な機能と使用方法を説明します。ご参考までに、...
IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...