問題タブ [resig]
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 - セレクターエンジンとは?
John Resig の Sizzle という名前の高速な新しいセレクター エンジンのニュースをかなりの場所で見てきましたが、セレクター エンジンが何であるかはわかりませんし、それが何であるかを説明している記事もありません。Resig が jQuery の作成者であり、Sizzle が Javascript の何かであることは知っていますが、それ以上のことはわかりません。セレクターエンジンとは?
ありがとう!
jquery - jquery-見つけたスクリプトからajaxインジェクションにiframeを作成する方法は?
この追加されたiframeをどのように変更するのか疑問に思っています:
divに これを変更して、iframeを追加せず、代わりにajaxを使用する方法はありますか?私は使用できる必要があります
その一部。私はまだ初心者です。
私が編集しているスクリプトを見たい場合は、少し前のJohnResigによるGreyBoxReduxライトボックススクリプトです。これまでのところ、かなりの量のjqueryを削除しました。これは、Webサイトではなく、画像を表示するために必要なものがすべて揃っているためです。ほんの数キロバイトです。
ありがとう。
これが私が取り除いた後に残したjqueryです:
これはhtmlファイルからのものです:
それがたくさんある場合は申し訳ありません:/
javascript - 単純なJavaScriptの継承の改善
John Resig(jQueryで有名)は、SimpleJavaScriptInheritanceの簡潔な実装を提供します。彼のアプローチは、物事をさらに改善しようとする私の試みに影響を与えました。Resigの元のClass.extend
関数を書き直して、次の利点を追加しました。
パフォーマンス–クラス定義、オブジェクト構築、および基本クラスのメソッド呼び出し中のオーバーヘッドが少なくなります
柔軟性–新しいECMAScript 5互換ブラウザ(Chromeなど)用に最適化されていますが、古いブラウザ(IE6など)には同等の「シム」を提供します
互換性–厳密モードで検証し、ツールの互換性を向上させます(VSDoc / JSDocコメント、Visual Studio IntelliSenseなど)
シンプルさ–ソースコードを理解するために「忍者」である必要はありません(ECMAScript 5の機能を失うとさらに簡単になります)
堅牢性–より多くの「コーナーケース」単体テストに合格します(IEでtoStringをオーバーライドするなど)
あまりにも良さそうなので、ロジックに根本的な欠陥やバグがないことを確認し、誰かが改善を提案したり、コードに反論したりできるかどうかを確認したいと思います。それで、私はclassify
関数を提示します:
constructor
また、コンストラクター名( vs. init
)と基本クラスのメソッド呼び出しの構文を除いて、使用法はResigとほぼ同じです。
そして、これが私のQUnitテストで、すべて合格しています。
誰かが私のアプローチとジョン・レシグの元のアプローチに何か問題があると思いますか?提案やフィードバックは大歓迎です!
注:上記のコードは、この質問を最初に投稿してから大幅に変更されています。上記は最新バージョンを表しています。それがどのように進化したかを確認するには、改訂履歴を確認してください。
javascript - プロトタイプ.js関数バインディングコードについての説明
出典: http://ejohn.org/apps/learn/#2
なぜ2番目のリターンが必要なのか(fn.applyの前)誰か教えてもらえますか?
また、args.concat が必要な理由を説明できる人はいますか? 次のように書き直さないのはなぜですか。
それ以外の
javascript - John Resigs Micro テンプレートと JQuery テンプレートまたはその他のツールの比較?
私が取り組んでいるプロジェクトでは、John resig のきちんとしたマイクロ テンプレート JavaScript を使用しています。プロジェクトは JSOn オブジェクトをプルダウンし、次のような一連の入力フィールドを含むテーブルを吐き出します。
これは問題なく動作しますが、IE では速度が遅く、ブラウザが少しロックされます。ただし、Chromeではうまく機能します。
私はネットを見回して、さまざまなテンプレートエンジンに関する記事をいくつか見つけましたが、それらはすべて少し古くなっています.Jqueryテンプレートは少し新しいので、それらのパフォーマンスの違いに気づいた人はいますか?そしてresigsエンジン?交換する価値はありますか?それとも、JS ベースのテンプレート作成をあきらめて、サーバー側だけを生成する必要がありますか?
javascript - ResigのSimpleJavaScriptInhertianceを使用するときにコンソールに表示されるクラス名の取得
私はResigのSimpleJavaScriptInheritanceを使用してクラスを作成しています。これまでのところ気に入らないのは、このライブラリで作成されたオブジェクトをコンソールに記録すると、その名前が単に「クラス」になることだけです。私の質問は、代わりにコンソールで実際のクラス名を取得するように彼のコードを変更する方法があるかどうかです。Chromeのコンソールの例を次に示します。
その名前「Class」を、次の場合と同じように、私が作成したクラスの実際の名前にしたいと思います。
これがResigのライブラリで発生する理由はわかっていると思います。実際のコンストラクター関数は、単に「クラス」という名前です。彼のライブラリのコードは次のとおりです。
このClass()
関数は、約2/3のところにあります。コンソールでクラスの実際の名前を取得できるように、このコードを変更する方法を知っている人はいますか?
javascript - John Resig の「単純な JavaScript 継承」を使用して、メソッド内からスーパー メソッドと追加のコードを呼び出すにはどうすればよいですか?
このブログページで詳しく説明されているように、JavaScript の天才 John Resig の「シンプルな JavaScript 継承」を試してみることにしました。
http://ejohn.org/blog/simple-javascript-inheritance/
スーパーメソッドを呼び出すコードでメソッドをオーバーライドする方法に興味があります。つまり、 Personクラスから始めるとしましょう:
そのPersonクラスを拡張して、新しいクラスWorkerを作成します。
initメソッドの 2 つのバージョンでコードの繰り返しがあります。次の 2 行は、使用しているクラスに関係なく実行されます。
Heroクラスのinitメソッド内からPersonクラスのinitメソッドを呼び出してから、 ocseプロパティを含む追加のコード行を挿入できるようにすべきだと思われます。
しかし、Resig 氏のコードではそれができません。以下は機能しません。
Workerクラスを作成するためにPersonから呼び出されたextendメソッドが *this._super(arguments)*を確認するとすぐに、 Worker のinit全体をPerson のinitに置き換え、未定義の職業プロパティを残します。
Resig氏のコードを変更せずにこれを回避する方法について何か提案はありますか? 現在、「スーパー」の概念を実装するさまざまな方法を試していますが、これを既存のコードで機能させることができないという事実が頭に浮かびます。:-)
更新: Resig 氏のコードを実装する際に 1 つの小さなエラーを犯したことに気付きました。これが、説明した方法で動作した理由です。@chuckj もWorker の initのエラーを正しく指摘しました。
jquery - jQuery 1.7以降のResigのLive Search redux?
私は最近、Resig のQuicksilver Live Search の jQuery リライトを見つけて、その仕組みを気に入っていますが、新しい .on() イベント ハンドラで動作するように更新しようとしています。しかし、私の能力(またはその欠如)は私を失敗させます。
「this.keyup(filter)...」を編集する必要があると考えていますが、何も機能しません。何か案は?
更新:明確にするためのポイントです。スクリプトを更新したいという私の考えは、動的に持ち込まれたリスト項目を受け入れることです。静的なリストであればすべて正常に動作しますが、ajax 呼び出しで作成されたリストを導入したため、動作しません。フィドルをモックアップして、すぐにここにリンクします。それまでの間、誰かが私を助けてくれれば、私の隠れ家を救うことができます. ありがとう。
javascript - inherit.js の奇妙な正規表現 (John Resig 作) - なぜ、何を、どのように?
最近、John Resig による inherit.jsという小さなユーティリティ ライブラリを使用しました。私は通常、使用しているライブラリのコア部分を理解しようとしますが、頭を悩ませた後、コードの難しい部分 (つまり、スーパークラスの対応するメソッドを呼び出す方法) を最終的に理解しました。
取得できない 1% ビットは、正規表現に関連しています
- 正規表現 /xyz/ は関数に対してテストされます。文字列を引数として取るMSDNとMDN状態の両方。
test
機能についての言及はありませんが、コンソールにエラーがないので、おそらく飛ぶに違いないと思いますが、どのように機能しますか? - 次の WTF は、関数本体が
xyz;
. この関数は実行できません。そうしないと "ReferenceError: xyz is not defined
" になるからです。右?それで、それは何をしますか? - テストの結果が true の場合は、単語境界
fnTest
をチェックする正規表現に等しく_super
、それ以外の場合は何にでも一致する正規表現になります。ダブルWTF; 繰り返しますが、どのように、なぜですか。
後で、この正規表現が使用されている関連するコードがあります。
ここで私が疑問に思っているのは、fnTest.test(prop[name])
. プロパティが存在するかどうか、関数であるかどうかなどをチェックする他のすべてのテストは理解していますが、正規表現テストの機能は理解していません。誰?