問題タブ [ecmascript-5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - PhoneGap-App のコールバックと参照を修正する
Javascript-Objects に解析される複数のデータベース テーブルを持つ PhoneGap-Application を作成したいので、次のコードを書きました。
問題は、queryDB-method の「this」がオブジェクトではなくメソッド自体への参照であることです。正しい方法を参照する方法を知っている人はいますか?
ありがとうございました!
actionscript-3 - オブジェクト ツリー トラバーサル - アプリのメモリ リーク検出のための afl
イベント ドリブン アプリケーション (AS3) でメモリ リークが発生しているかどうかを確認するために、AFL (adobe flash lite) エンジンでオブジェクト ツリーを走査しようとしています。これは、イベント処理の前後にオブジェクト ツリー ダンプを取得し、オブジェクト ツリー ダンプの違いをチェックしてメモリ リークがないかどうかを確認することを目的としています。
MMgc は AFL の GC だと思います。オブジェクト ツリーのダンプを取得できません。コード内のどこで tamarin の生きているオブジェクト情報を取得できるかを教えてください。
javascript - Object.create と継承
次の例の結果のオブジェクトの違いは何ですか:
oConstr
コンストラクターにoConstr2
プロパティが設定されていると思いますEventEmitter
が、他に意味のある違いはありますか?
javascript - Array.prototype.forEach代替実装パラメーター
最新のWebアプリケーションで作業していて、このArray.forEach
関数を使用する必要があるとき、関数が組み込まれていない古いブラウザーにサポートを追加するために使用される次のコードを常に見つけました。
コードの機能と動作は完全に理解していますが、仮thisp
パラメーターをコメントアウトしてコピーし、arguments[1]
代わりにを使用してローカル変数として設定することを常に確認しています。
なぜこの変更が行われたのか誰かが知っているのだろうかと思っていました。私が知る限り、コードはthisp
変数ではなく正式なパラメーターとして正常に機能したのでしょうか。
javascript - JavaScriptオブジェクトを「ロックダウン」することによるパフォーマンス上の利点はありますか?
JavaScript 1.8.5(ECMAScript 5)は、さまざまな程度の徹底性で、渡されたオブジェクトの将来の変更を防ぐいくつかの興味深いメソッドを追加します。
おそらく、これらの主なポイントは間違いを見つけることです。特定のポイント以降にオブジェクトを変更したくないことがわかっている場合は、オブジェクトをロックして、後で誤って変更しようとした場合にエラーがスローされるようにすることができます。(あなたがそれをした"use strict";
という条件で。)
私の質問: V8などの最新のJSエンジンでは、上記の方法を使用してオブジェクトをロックダウンすることで、パフォーマンス上の利点(たとえば、プロパティルックアップの高速化、メモリフットプリントの削減)はありますか?
(John Resigのすばらしい説明も参照してください。ただし、パフォーマンスについては触れていません。)
javascript - JavaScript の「厳格モード」に注意する必要がありますか?
ECMAScript 5 の厳密モードについて読むと、次のことがわかります。
特定の言語関数は非常に普及しているため、実行時チェックの実行にはかなりのパフォーマンス コストがかかります。いくつかの厳密モードの微調整に加えて、ユーザーが送信した JavaScript が厳密モード コードであり、特定の方法で呼び出されることを要求することで、これらの実行時チェックの必要性が大幅に減少します。
これらの調整のいくつかは次のとおりです。
- /メソッドの最初の引数として
null
/を使用しないでください。undefined
call
apply
- 関数内で新しいグローバル変数を作成しないでください。
質問:
厳密モードで作成された JavaScript フレームワークはありますか? では、「厳格な」コードが無駄にならないことを信頼できますか?
何としても注意を払うべき
strict mode
ですか?つまり、良い習慣としてやみくもに採用されているということですか?
javascript - ECMAScript 5関数のリファレンスシートはどこにありますか?
ECMAScript 5のすべてのデータ型と関数の1〜2ページのリファレンスシートはどこにありますか?
例:Array.prototype.forEach、Date.nowなどの構文と簡単な説明。
javascript - アクセサ記述子: 実際に「get」と「set」を使用する方法は?
私はそれを正しく理解しているかどうかわかりません。
この例は、MDN (Mozilla Developer Network) から直接引用したものです。
何が起こるかというと、bValue という名前のグローバル変数が作成されますが、これは行われません。この例は使用方法を示すだけであることを理解しています。したがって、グローバル変数を作成しても問題ありません。this
ただし、これをアプリケーションで使用する場合は、次のキーワードを追加して、少し変更します。
これで、オブジェクトo
はプロパティを持ちb
、同時に別のプロパティも持ちますbValue
。ユーザー (プログラマー) は 'b' のみに公開され、'bValue' には公開されませんが、bValue に直接アクセスすることはできます。これを防ぐ方法がわかりません。
b
プロパティとプロパティbValue
が常に同じであるとは限らずb
、値に依存することを理解しています。bValue
これは、ゲッターとセッターにより、値を に割り当てる前に bValue を前処理できるためb
です。
主な質問は、正しく理解できているかどうかです。それとも、ここで何か不足していますか?
javascript - ECMAScript 5 (ES 5)-shim を提供するには?
ECMAScript 第 5 版 (2009 年 12 月リリース) では、多数の新しいメソッドが導入されています (詳細については、この表を参照してください)。ただし、これらの新しいメソッドを実装していない古いブラウザーがまだ存在します。
幸いなことに、(JavaScript で記述された) 便利なスクリプトES5-shimが存在します。これは、これらのメソッドが存在しない環境でこれらのメソッドを手動で実装します。
ただし、ES5-shim を提供する方法がわかりません...次のように、すべてのブラウザーに「提供」する必要があります。
または、次のように、本当に必要なブラウザだけを「困らせる」ためにチェックを含める必要があります。
(Function.prototype.bind
ブラウザがすべての新しい ECMAScript 5 メソッドを実装しているかどうかを確認するために使用しています。上記でリンクした互換性テーブルによると、bind
ECMAScript 5 メソッドの実装に関しては「最後の砦」です。)
もちろん、この shim を有効にするには、他のすべてのスクリプトの前に実行する必要があります。つまり、上記の SCRIPT 要素をページの早い段階 (HEAD 内、他のすべての SCRIPT 要素の前) に含める必要があります。
では、この 2 番目の例は、ECMAScript 5-shim をブラウザーに提供する良い方法でしょうか? それを行うより良い方法はありますか?
javascript - オブジェクトのキーの配列を取得
jQuery または純粋な JavaScript で、JavaScript オブジェクトのキーを配列として取得したいと考えています。
これよりも冗長でない方法はありますか?