javascript - 如何在浏览器中使用基于类的 OOP JavaScript?

标签 javascript oop

我已经将程序 JS 函数转换为一个类,现在我想知道何时实例化它。

这是我的类(class):

MyProject = function() {};

MyProject.prototype.myProperty = "10";

MyProject.prototype.myMethod = function (value) {
   // do something

} 

这是我的 HTML 页面:

<script src="javascriptfilesdirectory/MyProject.js"/>

<script>
function initialize() {
   myProject = new MyProject();
}
</script>

<body onload="initialize()" >

我的问题是我是在页面加载时初始化它并创建一个局部变量(如上所示)还是在 JS 类文件中初始化它?

这是我的 JS 文件:

MyProject = function() {};

MyProject.prototype.myProperty = "10";

MyProject.prototype.myMethod = function (value) {
   // do something

} 

myProject = new MyProject();

另外,我说的是一般情况,在本例中它是一个单例。我只想使用它的一份副本。

最佳答案

如果你真的想要它作为一个单例,你可以做得比这更容易,比如:

var myProject = new (function() {
    this.myProperty = "10";
    this.myMethod = function(value) { }
})();

您的“类”仅定义足够长的时间来分配一次,因为您永远不会实例化第二个副本。

对于非单例,我倾向于遵循TypeScript上发现的模式。页面:

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

var greeter = new Greeter("world");

关于javascript - 如何在浏览器中使用基于类的 OOP JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917717/

相关文章:

javascript - JavaScript OOP 中的公共(public)方法

php - 类文件的文件名 : file. class.php 或 file.php?

oop - 在使用 jQuery getJSON 调用的对象上运行初始化方法

javascript - 如何在 JavaScript 中将奇数和偶数组合到主 id 中?

javascript - 一次迭代一个网格行

php - 使用 Symfony 的 EventDispatcher 组件的正确方法是什么?

c# - 在构造函数中传递参数而不是设置属性

javascript - 如何通过点分隔路径动态分配 ngmodel

javascript - 使用 Angular 将图像上传到 Kinvey

javascript - 如何使用 jquery 将表单输入字段转换为嵌套 json 结构