1

Q1 - 我有

(function (document,window) {

var shelf = window.shelf = function (foo) {

    var init = function () {
        console.log("in init" + foo);
    };

    alert("in shelf.js "+ foo + "type" + typeof init);
};
})(document, window);

我想以样式调用我的 HTML 页面中的架子中的 init 函数

var api=shelf("1234");
api.init();

或者

shelf().init;

我如何让它工作?,我在匿名自我执行函数上阅读,

自执行匿名函数和闭包

什么是自执行匿名函数或这段代码在做什么?,

为什么需要在同一行调用匿名函数?,

http://markdalgleish.com/2011/03/self-executing-anonymous-functions/

我需要文档和窗口对象,因为我将使用它向我的 html 页面动态添加组件

Q 2 - 这是更好的方法还是我应该使用其他方法来确保模块化+重用?

4

1 回答 1

2

在您的代码中,init不可从外部调用。我相信你正在寻找这样的东西:

(function (document,window) {

var shelf = window.shelf = function (foo) {

    this.init = function () {
        console.log("in init" + foo);
    };

    alert("in shelf.js "+ foo + "type" + typeof this.init);
};
})(document, window);

var api = new shelf("1234");
api.init();
于 2013-06-28T16:46:23.303 回答