是否有可能像C#一样提供javascript部分类行为或者像Ruby那样提供猴子补丁?

aar*_*ona 4 javascript monkeypatching partial-classes

部分类背后的想法是你可以将某些功能组合在一起.C#中最好的例子是将控件定义放在一个文件中,将事件处理程序放在另一个文件中.在Ruby中,您可以使用Monkey修补来替换整个函数等,以获取代码来执行您想要的操作.

我还没有找到理由这样做,但我认为随着网络的改进,更多的应用程序将在客户端,所以我想知道我在服务器端语言中找到的一些很棒的功能,我也可以在Javascript中使用.

有人知道吗?

Ray*_*nos 6

// file 1

function augment() {
    this.monkey = "monkey";
}

// file 2

function augmentMore() {
    this.patch = "patch";
}

// file 3

var o = {};
augment.call(o);
augmentMore.call(o);
console.log(o.monkey + o.patch);
Run Code Online (Sandbox Code Playgroud)

猴子修补工作.部分类可以按惯例工作.例如,考虑这个惯例.

// file main
function SomeObject() {
    for (var i = 0, ii = SomeObject.Partial.length; i < ii; i++) {
         SomeObject.Partial[i].apply(this, arguments);
    }
}

SomeObject.Partial.SomeName = function() {
   ...
}

// file extra
SomeObject.Partial.SomeOtherName = function() {
   ...
}
Run Code Online (Sandbox Code Playgroud)

JavaScript非常强大.你有什么特别的例子吗?