以下のコードは私のテスト コードです。コメントは非常に重要です:
/*グローバル ウィンドウ,jQuery,validate_email,masterUI,$,rest*/
/**この関数に対して ECMAScript の「厳密」操作を有効にします。詳細:
* http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
* http://stackoverflow.com/questions/5020479/what-advantages -does-using-functionwindow-document-undependent-windo
* Q1: ウィンドウとドキュメントが通常にアクセスされるだけでなく、フィードされるのはなぜですか?
* A1: 一般に、識別子の解決プロセスを高速化するには、識別子をローカル変数として使用すると役立ちます (ただし、IMO によると、パフォーマンスの向上はごくわずかである可能性があります)。
* A2: グローバル オブジェクトを渡すことは、グローバル スコープでウィンドウ識別子を持たない非ブラウザ環境でも広く使用されている手法です。例:
* (function (global) {
* //..
* })(this); // グローバル実行コンテキスト上のこれは、グローバル オブジェクトそのものです
* A3: ウィンドウとドキュメントを渡すと、スクリプトをより効率的に縮小できます
*
* Q2: 一体、なぜ未定義が渡されるのでしょうか?
* A1: これは、ECMAScript 3 の未定義のグローバル プロパティが変更可能であるために作成されます。つまり、誰かがその値を変更してコードに影響を与える可能性があります。たとえば、
* unknown = true; // 変更可能な
* (function (unknown) {
* warning(typeof unknown); // "未定義"、ローカル識別子
* })(); // <-- 値は渡されず、デフォルトでは未定義です
* よく見ると、実際には未定義が渡されていません (関数呼び出しに引数がありません)。
* これは、プロパティ window.unknown を使用せずに、未定義の値を使用します。
*
*/
(関数(ウィンドウ, ドキュメント, 未定義) {
" use strict";
window.test = {
init: function () {
"use strict";
alert("ok");
}
};
})(window , document);// 他の人によって変更された変更可能な window.unknown の使用を避けるために、ここには未定義のパラメータはありません
1. 手順は、stackoverflow の記事と投稿を参照してください
2. (function(){})() このようなコードは別のjsファイルに書かれており、そのjsファイルをhtmlで読み込むと関数が実行されます。実際に windows.text オブジェクトが作成されます。
将来的には、HTML コードは test.init の形式でメソッドを呼び出すことができるようになります。
コードのテスト HTML 部分は次のとおりです:
[プレーン] plaincopyprint を表示しますか?
AppEngine SDK
3.Jslint は 2 つの質問を報告します。1 つは未定義に関するものです。良い方法が見つからないので、愚痴を言ってください。別の形式の最後の呼び出しメソッドは次のように変更する必要があります:
[javascript ] view plaincopyprint?}(window, document));
気にしないでください。正しく機能する限り。