将Mootools迁移到prime或primish/使用JavaScript类的最佳方式

将Mootools迁移到prime或primish/使用JavaScript类的最佳方式,javascript,class,mootools,Javascript,Class,Mootools,我想将项目从mootools迁移到prime或primish 我需要继承类,从父或祖父母那里获取选项和方法,所有这些都是Mootools类允许我做的 我认为对我来说最好的解决方案是使用primish和wrapup发送类 目前我的想法是: 服务器: var wrup = require("wrapup")(); wrup.require('prime', __dirname + '/primish/prime.js') .require('options', __dirname + '/

我想将项目从mootools迁移到prime或primish

我需要继承类,从父或祖父母那里获取选项和方法,所有这些都是Mootools类允许我做的

我认为对我来说最好的解决方案是使用primish和wrapup发送类

目前我的想法是:

服务器:

var wrup = require("wrapup")();

wrup.require('prime', __dirname + '/primish/prime.js')
    .require('options', __dirname + '/primish/options.js')
    .require('emitter', __dirname + '/primish/emitter.js')
    .require('Element', __dirname + '/public/UI/Element.js')
    .require('otherClass', __dirname + '/public/UI/otherClass.js')
    .up(function(err, js){
        fs.writeFileSync(__dirname + '/public/main.js', js);
    });

app.get('/', function(req, res){

    res.sendfile('index.html');

});
index.html:

<script type="text/javascript" src="public/js/main.js"></script>

var el = new Element({
    options:{
        tag: 'div'
    }
});
但我做错了什么,我想这是我声明类的方式,但我不知道该怎么做

现在我该怎么做呢

对于需要Mootools类所有功能的人来说,最好的选择是什么

出于性能原因,某些内容已从prime中删除

然后,我的最后一个问题是,考虑到性能,谁想在客户端和服务器端使用类启动一个新项目,这是最好的解决方案

我认为最好的解决方案是使用纯JS,如“方法2”,并根据需要将原型更改为复制对象属性

很抱歉,有这么多问题,我正试图找出在JS中实现类的最佳解决方案

你的意见是什么

很抱歉,我忘了实现:options和构造函数,但如果我像这样发送索引中的类,这不是问题:

<script type="text/javascript" src="public/UI/Element.js"></script>
<script type="text/javascript" src="public/UI/otherClass.js"></script>
var el = new Element({
    tag: 'div'
});


工作正常,但我使用wrapup发送类,但没有工作。

Prime可能永远不会涵盖MooTools所做的所有事情。这是一种完全不同的方法,您只需从npm(或任何其他来源)加载所需的模块,并使用最适合您的方法。Primish是Dimitar Christoff的一个主要分支,它实现了一些MooTools类逻辑(以及其他一些东西,请看这里的自述:)

如果MooTools涵盖了您的所有用例,为什么您要从MooTools切换到Prime/Primish

关于您的代码问题: 您需要设置构造函数(在MooTools中初始化):

然后您可以像这样实例化您的类:

<script type="text/javascript" src="public/UI/Element.js"></script>
<script type="text/javascript" src="public/UI/otherClass.js"></script>
var el = new Element({
    tag: 'div'
});

嘿,这太糟糕了!我写的是一本正经的,因为我不需要任何包装,我喜欢糖。卡米肯和阿里安在许多决定上走了另一条路。现在看到你包装得一本正经让我感到畏缩——只需使用RequireJS:)