を編集しましたユーザーは辞書と呼ばれるオブジェクトを読むことができるlibを編集することもできます。ユーザーが読むことができ、私によって編集されるオブジェクトを持つ方法はありますか?JavaScriptオブジェクトは、</p> <p>目標は、私が作成しています...私はObject.definePropertyを使用してのみ編集することができ、通常の方法でそれを編集することはしないようにJavaScriptで閉じたオブジェクトを、作成したい部分的
答えて
オブジェクト部分を保護することはできません。
も参照してください: How to Create Protected Object Properties in JavaScript
あなたはこのようObject.defineProperty使用して、いくつかの基本的な保護を提供することができます。
var o = { a: 5 };
o._protected = {};
o._protected.a = o.a;
Object.defineProperty(o, 'a', {
get: function() { return this._protected.a; },
set: function(value) {
if (value > 0 && value < 5) {
this._protected.a = value;
}
configurable: false
});
彼らが得る通過しますので、これは、このオブジェクトのプロパティa
への変更を制限します(読み取り)/設定(更新)します。もちろんこの場合、_protected
オブジェクトを操作することはできますが、ユーザーは意識的に 'ハックする'必要があります。プロパティa
を直接変更しようとすると、あなたのコントロール下にあります。
この例では、o.a = 6を設定しようとすると、o.aは変更されません(もちろん、これが望ましい場合は、set関数の最大許容値に設定できます)。
o.aの変更を防ぐには、set関数を指定しないでください。
これは、プロパティが「有効な」値を取得するのに便利な場合があります。私はしばしばそのように使いました。
見つけました。
var protected = {}
Object.defineProperty(this,
'setter', {
value: function(name , value) {
protected[name] = value
},
writable: false,
})
Object.defineProperty(this,
'getter', {
value: function(name , value) {
return JSON.parse(JSON.stringify(protected))
},
writable: false,
})
Object.freeze(this.setter)
Object.freeze(this.getter)
@zerkmsこの回答を確認してください! – challenger
@ediこの回答を確認してください! – challenger
これは、単純に 'getter'と 'setter'というプロパティに保護を設定しています。私はこれがあなたにどのように役立つのか分かりません。 – rasmeister
- 1. javascriptオブジェクトを作成し、私はこのようなJavaScriptオブジェクトを作成したい、それに
- 2. は、私は、ユーザーが新しいツリーノードを作成することができ、ツリービューを持って編集
- 3. CakePHPの:それは、ページが$に.get呼び出しことになり、いくつかのJavascriptをロードする記事/編集/ 1</p> <p>だと言うてみましょう...だから、私は私の編集ビューにいるよAJAX
- 4. XMLデータベースは、問題は、私はプログラムを閉じて再度開くたびに、それは私が好きな新しいデータベースをcreatsということです私は</p> <p>で私の情報を入れて、新しいデータベースを作成しようとしています。この部分に
- 5. 外部キーを使用したEFオブジェクトの編集/作成
- 6. OpenLayersを、私はこのコードを使用して編集することができるラインを作成していた特徴
- 7. Javascriptを私はこのような付属JavaScriptを持っている(と、それは編集することはできません)を直接
- 8. 編集可能なグリッド表示の更新は、私が編集可能にGridViewを使用してGridViewのデータを更新しようとしていますが、私は、コードbehind.Hereで編集テンプレートの値を取得することができません
- 9. 画像クリックで新しいオブジェクトを作成し、私は次のコード(私はかなりunadvanced午前)しようとしているイメージが</p> <p>をクリックしたときに、私は新しいオブジェクトを作成したいHTML
- 10. ことができない私は、私はここで私はdatatable.Insideをdatableがされて私の表示をしていたJSFポートレットを作成したJSFポートレット(primefaces 3.2)</p> <p>を開発しようとしています
- 11. 私はこの問題は、私はjQueryのを使用して、動的に作成したボタンを使用して動的フィールドを作成したい</p> <p>助けてください直面していますという点で、私は1つのUIを作成してい動的に作成したボタン
- 12. GridViewのrowIndexには、それは私の編集可能なテキストボックスが表示されますが、私は<code>Update</code>それエラーの値を編集し、押したときに、私は自分のページ上のGridViewを持っていると私は<code>Edit</code>をクリックしてください0
- 13. ロダッシュを使用して、複数のオブジェクトでオブジェクトを更新しようとしています。 (編集項目)
- 14. 私は、オブジェクトを作成しようとしていますJavascriptを
- 15. NSManagedObjectのサブクラスを作成すると、これは4つのファイルを生成...私は編集メニューに行き、その後、NSManagedObjectサブクラスを作成して選択することでnsmanagedobject(ユーザー)を作成しようとしていますリンカエラー重複シンボル
- 16. javascript Fullcalendarはイベントを編集しようとすると、最初にクリックしたものを編集します。
- 17. 私が何をしようとしているであるオブジェクトを作成し、それがここ
- 18. NATIVESCRIPTでパラメータ化されたイベントを作成する方法は?</p> <p></p> <p>私はこのフォーマットは動作しません、ということを知っている:私は解決しようとしている
- 19. javaの - 私は、コードのこの部分で作成されたウィンドウでライン上のオブジェクトを作成してい
- 20. vue.jsでのプレーススタイルの編集を作成しようとしています
- 21. SQL - 私は<strong>SQLコンパクト</strong></p> <p>それは基本的にこれらのクエリであるため、クエリを作成しようとしていますが、私は私は1つにそれらを組み合わせることができ期待していたこのクエリ
- 22. は、フォーカスを設定すると、私のように編集可能なiFrameを作成しているFirefoxの
- 23. リンク - 私はそれが編集メニュー(コピーを変更可能だということを発見したすべての:)</p> <p>にこの
- 24. あなたは <p></p>は、私はクラスを作成した...私は、これは千個の異なる方法で千回を求めて見てきましたが、まだそれが仕事を得ることができない
- 25. QtのQGraphicsSceneが遅い、私は次のコードを使用して編集可能なグリッドを作成するQGraphicsSceneを使用しようとしているアイテム
- 26. 私は、リストビューを持っている編集項目テンプレートで、私は私がそれにこのCompareValidatorを置く</p> <p>内部のテキストボックスと2つの複合コントロールを持ってこのCompareValidatorは、リストビューのeditItemTemplateに動作しますが、insertitemtemplate
- 27. javascriptを通常のjavascriptと同じにしないで、acrobatでオブジェクトのリストを作成しますか?
- 28. 私は私はそれを使用しようとしていますサブでのMsgBoxでそれを印刷することができますように成功し、このグローバル文字列変数を作成しているように見える
- 29. PostgreSQLで大きなオブジェクトを使用してイメージフィールドを編集する方法は?
- 30. どのように私はmailtoの複数作成することができます:私は(それぞれ)のループを使用して複数のmailtoを作成しようとしているが、私は結果として取得していますが、最後のループの内容にのみ1メールですよJavascriptを
JSでは、実行時に何かを保護することはできません。すべてがサルのパッチを当てることができます。 – zerkms
@zerkms私は答えを加えました。それをチェックして何が間違っているか教えてください! – challenger