問題タブ [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.

0 投票する
1 に答える
223 参照

javascript - PhoneGap-App のコールバックと参照を修正する

Javascript-Objects に解析される複数のデータベース テーブルを持つ PhoneGap-Application を作成したいので、次のコードを書きました。

問題は、queryDB-method の「this」がオブジェクトではなくメソッド自体への参照であることです。正しい方法を参照する方法を知っている人はいますか?

ありがとうございました!

0 投票する
1 に答える
219 参照

actionscript-3 - オブジェクト ツリー トラバーサル - アプリのメモリ リーク検出のための afl

イベント ドリブン アプリケーション (AS3) でメモリ リークが発生しているかどうかを確認するために、AFL (adobe flash lite) エンジンでオブジェクト ツリーを走査しようとしています。これは、イベント処理の前後にオブジェクト ツリー ダンプを取得し、オブジェクト ツリー ダンプの違いをチェックしてメモリ リークがないかどうかを確認することを目的としています。

MMgc は AFL の GC だと思います。オブジェクト ツリーのダンプを取得できません。コード内のどこで tamarin の生きているオブジェクト情報を取得できるかを教えてください

0 投票する
1 に答える
329 参照

javascript - Object.create と継承

次の例の結果のオブジェクトの違いは何ですか:

oConstrコンストラクターにoConstr2プロパティが設定されていると思いますEventEmitterが、他に意味のある違いはありますか?

0 投票する
2 に答える
1195 参照

javascript - Array.prototype.forEach代替実装パラメーター

最新のWebアプリケーションで作業していて、このArray.forEach関数を使用する必要があるとき、関数が組み込まれていない古いブラウザーにサポートを追加するために使用される次のコードを常に見つけました。

コードの機能と動作は完全に理解していますが、仮thispパラメーターをコメントアウトしてコピーし、arguments[1]代わりにを使用してローカル変数として設定することを常に確認しています。

なぜこの変更が行われたのか誰かが知っているのだろうかと思っていました。私が知る限り、コードはthisp変数ではなく正式なパラメーターとして正常に機能したのでしょうか。

0 投票する
7 に答える
18967 参照

javascript - JavaScriptオブジェクトを「ロックダウン」することによるパフォーマンス上の利点はありますか?

JavaScript 1.8.5(ECMAScript 5)は、さまざまな程度の徹底性で、渡されたオブジェクトの将来の変更を防ぐいくつかの興味深いメソッドを追加します。

おそらく、これらの主なポイントは間違いを見つけることです。特定のポイント以降にオブジェクトを変更したくないことがわかっている場合は、オブジェクトをロックして、後で誤って変更しようとした場合にエラーがスローされるようにすることができます。(あなたがそれをした"use strict";という条件で。)

私の質問: V8などの最新のJSエンジンでは、上記の方法を使用してオブジェクトをロックダウンすることで、パフォーマンス上の利点(たとえば、プロパティルックアップの高速化、メモリフットプリントの削減)はありますか?

John Resigのすばらしい説明も参照してください。ただし、パフォーマンスについては触れていません。)

0 投票する
2 に答える
621 参照

javascript - JavaScript の「厳格モード」に注意する必要がありますか?

ECMAScript 5 の厳密モードについて読むと、次のことがわかります。

特定の言語関数は非常に普及しているため、実行時チェックの実行にはかなりのパフォーマンス コストがかかります。いくつかの厳密モードの微調整に加えて、ユーザーが送信した JavaScript が厳密モード コードであり、特定の方法で呼び出されることを要求することで、これらの実行時チェックの必要性が大幅に減少します。

これらの調整のいくつかは次のとおりです。

  • /メソッドの最初の引数としてnull/を使用しないでください。undefinedcallapply
  • 関数内で新しいグローバル変数を作成しないでください。

質問:

  1. 厳密モードで作成された JavaScript フレームワークはありますか? では、「厳格な」コードが無駄にならないことを信頼できますか?

  2. 何としても注意を払うべきstrict modeですか?つまり、良い習慣としてやみくもに採用されているということですか?

0 投票する
3 に答える
2140 参照

javascript - ECMAScript 5関数のリファレンスシートはどこにありますか?

ECMAScript 5のすべてのデータ型と関数の1〜2ページのリファレンスシートはどこにありますか?

例:Array.prototype.forEach、Date.nowなどの構文と簡単な説明。

0 投票する
2 に答える
2431 参照

javascript - アクセサ記述子: 実際に「get」と「set」を使用する方法は?

私はそれを正しく理解しているかどうかわかりません。

この例は、MDN (Mozilla Developer Network) から直接引用したものです。

何が起こるかというと、bValue という名前のグローバル変数が作成されますが、これは行われません。この例は使用方法を示すだけであることを理解しています。したがって、グローバル変数を作成しても問題ありません。thisただし、これをアプリケーションで使用する場合は、次のキーワードを追加して、少し変更します。

これで、オブジェクトoはプロパティを持ちb、同時に別のプロパティも持ちますbValue。ユーザー (プログラマー) は 'b' のみに公開され、'bValue' には公開されませんが、bValue に直接アクセスすることはできます。これを防ぐ方法がわかりません。

bプロパティとプロパティbValueが常に同じであるとは限らずb、値に依存することを理解しています。bValueこれは、ゲッターとセッターにより、値を に割り当てる前に bValue を前処理できるためbです。

主な質問は、正しく理解できているかどうかです。それとも、ここで何か不足していますか?

0 投票する
3 に答える
15313 参照

javascript - ECMAScript 5 (ES 5)-shim を提供するには?

ECMAScript 第 5 版 (2009 年 12 月リリース) では、多数の新しいメソッドが導入されています (詳細については、この表を参照してください)。ただし、これらの新しいメソッドを実装していない古いブラウザーがまだ存在します。

幸いなことに、(JavaScript で記述された) 便利なスクリプトES5-shimが存在します。これは、これらのメソッドが存在しない環境でこれらのメソッドを手動で実装します。

ただし、ES5-shim を提供する方法がわかりません...次のように、すべてのブラウザーに「提供」する必要があります。

または、次のように、本当に必要なブラウザだけを「困らせる」ためにチェックを含める必要があります。

(Function.prototype.bindブラウザがすべての新しい ECMAScript 5 メソッドを実装しているかどうかを確認するために使用しています。上記でリンクした互換性テーブルによると、bindECMAScript 5 メソッドの実装に関しては「最後の砦」です。)

もちろん、この shim を有効にするには、他のすべてのスクリプトのに実行する必要があります。つまり、上記の SCRIPT 要素をページの早い段階 (HEAD 内、他のすべての SCRIPT 要素の前) に含める必要があります。

では、この 2 番目の例は、ECMAScript 5-shim をブラウザーに提供する良い方法でしょうか? それを行うより良い方法はありますか?

0 投票する
8 に答える
495587 参照

javascript - オブジェクトのキーの配列を取得

jQuery または純粋な JavaScript で、JavaScript オブジェクトのキーを配列として取得したいと考えています。

これよりも冗長でない方法はありますか?