2

http://jsfiddle.net/totszwai/WvbPn/2/

function DialogBox() {
    this.__DEBUGGING__ = false;

    DialogBox.debug = function (b) {
        this.__DEBUGGING__ = b;
    };

    DialogBox.test = function (b) {
        alert("hello worodl");
    };
};


$(document).ready(function () {
    dialogbox = new DialogBox();
    dialogbox.test();
});

我无法弄清楚我在那里做错了什么。我试过了

DialogBox.prototype.test
DialogBox.test
test

我正在努力做到这一点,以便在内部调用它自己的函数时,我不需要一直放置this......例如:this.test()

更新: 还有没有办法在调用私有函数时不到处键入“this”?通常我只写一次使用的简单全局函数,但现在我正在尝试写一些不同的东西,我将在我的课堂上到处调用这些私有函数。所以我试图避免在任何地方使用“this”......更不用说它使代码的可读性非常糟糕。

就像在 Java(不是 JS)中一样,你不需要在任何地方都输入“this”。

4

1 回答 1

4

快速修复:

在 DialogBox 定义中,用于this.定义其方法:

http://jsfiddle.net/AaronBlenkush/WvbPn/4/

function DialogBox() {
    this.__DEBUGGING__ = false;

    this.debug = function (b) {
        this.__DEBUGGING__ = b;
    };

    this.test = function (b) {
        alert("hello worodl");
    };
};


$(document).ready(function () {
    dialogbox = new DialogBox();
    dialogbox.test();
});

要获得全面的答案:

StackOverflow 的答案太多了。

有关此主题的详细信息,请参阅 Addy Osmani 的《学习 JavaScript 设计模式》一书,尤其是关于构造函数模式的部分和周边部分。

于 2013-03-16T01:39:34.443 回答