シンプルなので、Javascriptで「保護された」可視性をどうにかエミュレートできますか?私たちはJavaScriptでプライベートIDを持つことができますが、保護されたIDはどうですか?
答えて
はこれを行います。
/* Note: Do not break/touch this object */
...code...
やGoogleのビットは、最初のページにこれを見つけた:
http://blog.blanquera.com/2009/03/javascript-protected-methods-and.html
この男がやっていることは、彼が「これ」に電話機能と同じ方法を持っているかどうかを知るためにちょっとしたタイピングをしているだけです。 –
私が言っていることは、あなたが本当にあなたの保護されたものを保護することができるとは思わないということです:P –
@Pablo、私は全く同意します...しかし、その動作を具体的なセマンティクスとして望むなら、JSあなたが望む言語ではありません:P –
それはおそらく何を意味するのだろうか? クラスがありません。
caller
を分析して、メソッドの呼び出しが許可されているかどうかを判断することができます。これは隠されて非効率的であり、あなたの基準は常にスプーフィング可能です。
真実ではありません。 Javascriptでは_everything_はオブジェクトです。受動的な構文ではなく、アクティブな構文を使用してクラスを定義します。構成と宣言。 – Christopher
@Christopher ...プロトタイプがクラスではないということは間違っています。それらもインターフェイスですか? –
さて、大丈夫です。しかし、私が意味するのは、オブジェクトが属しているかどうかを知ることができるエンティティ分類の名前空間を持たないことです。継承者のように見せたいものから継承者に伝えることはできません。 – chaos
ここで言及する価値のあるパターンがあります:JavaScriptコンストラクタ関数はオブジェクトを返す可能性があります(必ずしもthis)。 "実際の"インスタンスオブジェクトの "実際の"メソッドにプロキシメソッドを含むプロキシオブジェクトを返すコンストラクタ関数を作成することができます。これは複雑に聞こえるかもしれませんが、そうではありません。ここでのコードスニペットです:
var MyClass = function() {
var instanceObj = this;
var proxyObj = {
myPublicMethod: function() {
return instanceObj.myPublicMethod.apply(instanceObj, arguments);
}
}
return proxyObj;
};
MyClass.prototype = {
_myPrivateMethod: function() {
...
},
myPublicMethod: function() {
...
}
};
いいところは、私たちが保護されたメソッドの命名規則を定義する場合、プロキシの作成を自動化することができるということです。私はちょうどこれを行う小さなライブラリを作成しました:http://idya.github.com/oolib/
- 1. 私たちはいつプライベートか保護された使用を検討すべきですか?
- 2. 私たちはアプリ内で2タブビューを持つことができますか?
- 3. は、私たちが行うことができますES6で
- 4. .co.ukドメインをお持ちの場合、xcodeバンドルIDまたはCordova App IDはどうなるべきですか?
- 5. タッチIDで保護されたキーチェーンアイテムが存在するかどうかを確認しますか?
- 6. マングースは、私たちがこれを行うことができますIDの配列を持つオブジェクトを検索するに配列結果
- 7. どのように私はそれらのidでjavascriptテンプレートを読み込むことができますか?
- 8. 私たちはNuget Package Creationでインターフェイスを持つことはできますか?
- 9. 特性はプライベートで保護された可視性を持つプロパティとメソッドを持つことができますか?形質にコンストラクタ、デストラクタ、クラス定数を持たせることはできますか?
- 10. Doxygenが保護されたメンバーを出力できないようにすることはできますか?
- 11. R.javaの保護されたAndroid ID
- 12. Sender IDはプライベートですか?
- 13. 私は抽象クラスでプライベート最終フィールドを持つことができます
- 14. 私はC#から暗号化されたIDを持っています。どのようにiphoneでこのIDを復号化できますか
- 15. APIはwso2で保護されます。IDサーバー
- 16. 私たちは.netウィンドウアプリケーションでjavascriptを実行することができます
- 17. JavascriptはIDで要素を見つけることができませんか?
- 18. asp.netは<tbody id = "blah" runat = "server">を持つことができますか?
- 19. DailymotionでビデオのプライベートIDを削除することはできますか?
- 20. 私はJavaScriptのリスナーからの変数(ID)を渡すことができますどのようにルビーオンレールコントローラ
- 21. はjavascriptを動作させることができませんが、それはIDの問題ですか?
- 22. 私のIDをhtmlからjavascriptで取り除くことができます
- 23. "親"保護されたメンバーにはどのようにアクセスできますか?
- 24. スマートシートで行IDまたは列IDを見つけるにはどうすればよいですか?
- 25. JavaScriptで定義されたページのテキストをJavaScriptで検索して保持することができます
- 26. 私たちはカスタムマーカーインターフェイスを書くことができます
- 27. CA1062保護されたイベントハンドラの引数を検証しますか?私たちは、保護されたイベントハンドラでのEventArgsをチェックしない場合は
- 28. 私たちがpython Igraph v1.7で頂点オブジェクトを持っていれば、頂点IDを見つけるにはどうすればいいですか?
- 29. どのように私はLinuxでヒープメモリを保護することができますか?
- 30. タッチIDで保護されたデバイスで3Dタッチアクションを使用する
私は主なポイントは、JavaScriptのような言語であなたがそこに障壁を置くことができると思う...しかし、それは土嚢のようなものです...それは水浸漬を停止しない可能性がありますあなたのカーペット:P –
私は被災者が非難されていると信じており、それは人々がこれを行うために頼りにしているようだ。 – Nosredna