1

私は関数を作るために次のjavascriptを持っています$E

定義されwindow.onloadていないエラーがスロー$Eされます。

だから私の質問は、関数$Eの外部にアクセスできるように、グローバルスコープで可視化する方法です(function(){})();

window.onload = function() {
   $E("bhavik").warn();
}
(function() {
                function $E(s) {
                    return new ge(s)
                }
                function ge(sel) {
                    this.arg = sel;
                    return this;
                }
                ge.proto = ge.prototype = {warn: function() {
                        alert(this.arg)
                    }};
                ge.proto.hi=function(){alert("hi "+this.arg)}
                $E("bhavik").hi();
            })(window);
4

5 に答える 5

3

変数をグローバル スコープで表示するには、windowオブジェクトに設定します。例えば:

function $E(s) {
   return new ge(s);
}
window.$E = $E;
于 2013-01-05T06:19:51.763 に答える
1

これにより、テスト時に関数が別の関数内からグローバルになりました。

function test()
{
  window.$E = function() { alert('test'); };
}

test();
$E();

http://jsfiddle.net/WEg4b/

したがって、ニーズに合わせて調整するには:

(function() {

                function ge(sel) {
                    this.arg = sel;
                    return this;
                }

                window.$E = function $E(s) { return new ge(s); };

                ge.proto = ge.prototype = {warn: function() {
                        alert(this.arg)
                    }};
                ge.proto.hi=function(){alert("hi "+this.arg)}
                $E("bhavik").hi();
            })(window);
于 2013-01-05T07:36:08.880 に答える
1

Javascript : グローバル関数と変数の作成方法

http://www.w3schools.com/jsref/jsref_obj_global.asp

windowアクセスできるようにするには、変数を yourに設定する必要がfunctionあります。これらのリンクが役立ちます。また、関数を外部で定義してグローバルにすることもできます。

詳細な研究のために、

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Functions_and_function_scope

JavaScript 関数のスコープ

于 2013-01-05T06:21:06.697 に答える
0

関数宣言の順序を変更してみてください

(function() {
            function $E(s) {
                return new ge(s)
            }
            window.$E = $E;
            function ge(sel) {
                this.arg = sel;
                return this;
            }
            ge.proto = ge.prototype = {warn: function() {
                alert(this.arg)
            }};
            ge.proto.hi=function(){alert("hi "+this.arg)}
            $E("bhavik").hi();
        })(window);
window.onload = function() {
    $E("bhavik").warn();
于 2013-01-05T06:46:54.557 に答える
0

無名関数の外で宣言するだけです。モジュール内ですべてのコードを宣言することにより、他のすべてのコードから分離された新しいスコープを作成しているため、グローバル コンテキストで使用できるようにする場合は、その関数の外で宣言するだけです。

于 2013-01-05T06:22:07.160 に答える