javascript - 在命名空间 javascript 中创建一个新对象

标签 javascript object instance

我正在尝试在命名空间内创建一个函数,它将为我提供一个新的对象实例。

我在尝试执行以下操作时遇到语法错误:

var namespace = {
    a : function(param){
        this.something = param;
    },
    a.prototype.hi = function(){
        alert('hi');
    },

    b : function(){
        var t = new a('something');
    }
};

执行此操作的正确语法是什么?在 namespace 对象中做不到吗?我不想先声明命名空间。谢谢

最佳答案

I don't want to declare the namespace first.

你可以做这样奇怪的事情:

var namespace = {
    init: function() { 
        a.prototype.whatever = function(){};
    },
    a: function(x) {
        this.x = x;
    }  
}
namespace.init();
var myA = new namespace.a("x");

但是如果你想封装一切,为什么不试试模块模式呢?它更干净:

var namespace = (function() {
     function a() {};
     function b(name) {
          this.name = name;
     };
     b.prototype.hi = function() {
          console.log("my name is " + this.name);
     }
     return {
          a: a,
          b: b
     }
})();

关于javascript - 在命名空间 javascript 中创建一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687223/

相关文章:

javascript - 允许数字或特殊字符的正则表达式

javascript - 如何有效过滤 TreeView 保留其现有结构?

javascript - 将 JSON 插入 MongoDB 自动从字符串转换日期

database - db4o 问题

android - : 如何获取ViewPager中当前可见 fragment 的实例

javascript - "Object doesn' t 支持此操作 "when "newing“嵌套的 Javascript 对象实例

javascript - 使用 Javascript 在 IE 中将 Canvas 下载到图像

java - 我的构造函数没有给出所需的输出

javascript - 使用映射查找和函数覆盖数组中的对象

java - 将某物设置为 INSTANCE 而不是创建新对象是什么意思?