タグ付けされた質問 「prototype」

3
AngularJSのスコープのプロトタイプ/プロトタイプの継承のニュアンスは何ですか?
APIリファレンスScopeページは言います: スコープは親スコープから継承できます。 開発者ガイドScopeページは言います: スコープは(典型的には)親スコープからプロパティを継承します。 では、子スコープは常に親スコープからプロトタイプを継承しますか? 例外はありますか? 継承する場合、それは常に通常のJavaScriptプロトタイプの継承ですか?

29
__proto__VS。JavaScriptのプロトタイプ
この図は、すべてのオブジェクトにプロトタイプがあることを示しています。コンストラクター関数Fooには、__proto__Function.prototype という独自の関数もあり、その__proto__プロパティを介してObject.prototypeを再び参照します。したがって、繰り返しますが、Foo.prototypeはFooの明示的なプロパティであり、bおよびcオブジェクトのプロトタイプを参照します。 var b = new Foo(20); var c = new Foo(30); 違いは何ですか__proto__とはprototype? 図はdmitrysoshnikov.comから取られました。


10
Object.create()と新しいSomeFunction()の違いを理解する
私は最近Object.create()JavaScriptでこのメソッドに遭遇し、それがnew SomeFunction()を使用してオブジェクトの新しいインスタンスを作成することとどのように異なるのか、そしてどちらを使用したいのかを推測しようとしています。 次の例について考えてみます。 var test = { val: 1, func: function() { return this.val; } }; var testA = Object.create(test); testA.val = 2; console.log(test.func()); // 1 console.log(testA.func()); // 2 console.log('other test'); var otherTest = function() { this.val = 1; this.func = function() { return this.val; }; }; var otherTestA = …

13
JavaScriptでJSON文字列を特定のオブジェクトプロトタイプに解析する
JSON文字列を解析してJavaScriptオブジェクトに変換する方法を知っています。JSON.parse()最新のブラウザー(およびIE9 +)で使用できます。 それはすばらしいことですが、そのJavaScriptオブジェクトをどのようにして特定の JavaScriptオブジェクト(つまり、特定のプロトタイプ)に変換できるでしょうか。 たとえば、次のように仮定します。 function Foo() { this.a = 3; this.b = 2; this.test = function() {return this.a*this.b;}; } var fooObj = new Foo(); alert(fooObj.test() ); //Prints 6 var fooJSON = JSON.parse({"a":4, "b": 3}); //Something to convert fooJSON into a Foo Object //....... (this is what I am missing) …

16
JavaScriptでのオブジェクトの拡張
私は現在JavaからJavascriptに変換していますが、オブジェクトを希望どおりに拡張する方法を理解するのは少し難しいです。 私はインターネット上の何人かの人々がオブジェクトの拡張と呼ばれるメソッドを使用するのを見ました。コードは次のようになります。 var Person = { name : 'Blank', age : 22 } var Robot = Person.extend({ name : 'Robo', age : 4 )} var robot = new Robot(); alert(robot.name); //Should return 'Robo' 誰もがこれを機能させる方法を知っていますか?あなたが書く必要があると聞いた Object.prototype.extend = function(...); しかし、私はこのシステムを機能させる方法を知りません。それが不可能な場合は、オブジェクトを拡張する別の方法を教えてください。

8
なぜネイティブオブジェクトの拡張が悪い習慣なのですか?
すべてのJSオピニオンリーダーは、ネイティブオブジェクトを拡張することは悪い習慣だと言っています。しかし、なぜ?パフォーマンスに影響はありますか?彼らは誰かがそれを「間違った方法」で行うことを恐れて、列挙可能な型をObjectに追加し、実際に任意のオブジェクトのすべてのループを破壊しますか? テイクTJ Holowaychukのshould.jsを例えば。彼はシンプルなゲッターを追加しObject、すべてが正常に動作します(ソース)。 Object.defineProperty(Object.prototype, 'should', { set: function(){}, get: function(){ return new Assertion(Object(this).valueOf()); }, configurable: true }); これは本当に理にかなっています。たとえば、拡張することができますArray。 Array.defineProperty(Array.prototype, "remove", { set: function(){}, get: function(){ return removeArrayElement.bind(this); } }); var arr = [0, 1, 2, 3, 4]; arr.remove(3); ネイティブ型の拡張に反対する議論はありますか?

7
Spring Java Config:ランタイム引数を使用してプロトタイプスコープの@Beanをどのように作成しますか?
SpringのJava Configを使用して、実行時にのみ取得できるコンストラクター引数を使用して、プロトタイプスコープのBeanを取得またはインスタンス化する必要があります。次のコード例(簡潔にするために簡略化)を考えます。 @Autowired private ApplicationContext appCtx; public void onRequest(Request request) { //request is already validated String name = request.getParameter("name"); Thing thing = appCtx.getBean(Thing.class, name); //System.out.println(thing.getName()); //prints name } ここで、Thingクラスは次のように定義されています。 public class Thing { private final String name; @Autowired private SomeComponent someComponent; @Autowired private AnotherComponent anotherComponent; public Thing(String name) { this.name …

17
JavaScriptでの複数の継承/プロトタイプ
JavaScriptである種の初歩的な多重継承が必要になるところまで来ました。(これが良いアイデアであるかどうかについて話し合うためにここにいるわけではないので、それらのコメントはご自分で保管してください。) 私は誰かがこれを試みて成功したかどうかを知りたいのですが、彼らはどうやってそれをやりましたか? それを要約すると、私が本当に必要なのは、複数のプロトタイプチェーンからプロパティを継承できるオブジェクトを持つことができることです(つまり、各プロトタイプは独自の適切なチェーンを持つことができます)。チェーンを検索して、最初の定義を探します。 これがどのように理論​​的に可能であるかを示すために、プライマリチェーンの最後にセカンダリチェーンを接続することで実現できますが、これは以前のプロトタイプのすべてのインスタンスに影響し、それは私が望むものではありません。 考え?



4
Perl 5の関数プロトタイプがなぜ悪いのですか?
で、別のスタックオーバーフローの質問 レオンTimmermansがアサート: プロトタイプを使用しないことをお勧めします。それらには用途がありますが、ほとんどの場合ではなく、間違いなくこの場合ではありません。 なぜこれが本当なのか(またはそうでないのか)?私はほとんど常に自分のPerl関数のプロトタイプを提供します。他の誰かがそれらの使用について何か悪いことを言うのを見たことがありません。
116 perl  function  prototype 

5
AngularJSの親スコープ変数を更新する
2つのコントローラーがあり、1つは別のコントローラーにラップされています。これで、子スコープが親スコープからプロパティを継承することがわかりましたが、親スコープ変数を更新する方法はありますか?これまでのところ、明確な解決策はありません。 私の状況では、フォーム内にカレンダーコントローラがあります。送信時にフォームに開始日と終了日が含まれるように、親スコープ(フォーム)から開始日と終了日を更新したいと思います。

5
プロトタイプを使用する場合のJavascript
jsでプロトタイプメソッドを使用するのが適切な場合を理解したいと思います。常に使用する必要がありますか?または、それらを使用することが好ましくない場合やパフォーマンスが低下する場合がありますか? jsでの名前空間の一般的な方法でこのサイトを検索すると、ほとんどが非プロトタイプベースの実装を使用しているようです。単にオブジェクトまたは関数オブジェクトを使用して名前空間をカプセル化します。 クラスベースの言語から来たので、類似点を描き、プロトタイプは「クラス」のようなものであり、私が言及した名前空間の実装は静的メソッドのようなものだと考えるのは難しいことではありません。

8
javascript forEachメソッドにはどのような用途がありますか(そのマップではできません)?
mapとforeachで見られる唯一の違いmapは、配列を返すことと返さforEachないことです。ただし、forEachメソッド " func.call(scope, this[i], i, this);"の最後の行もわかりません。たとえば、「this」と「scope」は同じオブジェクトthis[i]をi参照しておらず、ループ内の現在の値を参照していないのですか? 別の投稿で誰かが「forEachリストの各要素に基づいて何かを実行したいときに使用します。たとえば、ページに何かを追加している可能性があります。基本的には、「副作用」が欲しいときに最適です。副作用の意味がわかりません。 Array.prototype.map = function(fnc) { var a = new Array(this.length); for (var i = 0; i < this.length; i++) { a[i] = fnc(this[i]); } return a; } Array.prototype.forEach = function(func, scope) { scope = scope || this; for (var i = 0, l = …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.