如何使用Node.js的Prototype.js?

我想为服务器端的JavaScript使用一些function。 我认为原型是检查浏览器types,但当然node.js不是浏览器。 我得到以下错误:

$ node > require('./prototype') ; ReferenceError: navigator is not defined at /home/guest/projects/javascript/prototype.js:14:5 at Object.<anonymous> (/home/guest/projects/javascript/prototype.js:23:4) at Module._compile (node.js:462:23) at Module._loadScriptSync (node.js:469:10) at Module.loadSync (node.js:338:12) at loadModule (node.js:283:14) at require (node.js:411:14) at cwdRequire (repl:29:10) at [object Context]:1:1 at Interface.<anonymous> (repl:96:19) 

prototype.js是1.7版本,node.js是0.2.6版本

原型被写成模块化的。 这意味着你可以只使用扩展Array和Class和Function的有用部分(我喜欢这些比特!),而忽略了处理浏览器和DOM的部分(IE中速度慢,节点中不存在的部分)。

首先转到https://github.com/sstephenson/prototype,然后&#x4ECE;src/prototype/src/prototype/lang/选取所需的部分。

祝你在这样一个迷人的挑战运气。

迟到的答案,但我相信它仍然可以有用的一些人:

https://github.com/Rixius/prototype.node.js

几天前,我自己做了这样的事情,并意识到它已经完成了…即使使用Githubsearch,这个回购很难find。

如果你看看Prototype.js的源代码,它就紧紧地绑定到浏览器环境,而不是由节点提供(因为它不是一个Web浏览器)。

jsdom试图模拟浏览器环境,并已经被用来在服务器端成功运行JQuery。 你的旅费可能会改变。

特别是node.js有underscore.js ,它实现了大多数Prototypes心爱的函数:

 Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js. 

它的原型本身更快,因为它不扩展任何内置的JavaScript对象。
由于这个原因,语法略有不同:

 // prototype.js: anArray.each(function(){ ... }); // underscore.js: _ = require('underscore'); _.each(anArray, function(){ ... }); 

如果你正在寻找像trim原型String函数,看看underscore.string