Javascript 节点列表的原型扩展

Javascript 节点列表的原型扩展,javascript,node.js,Javascript,Node.js,我正在使用基于“jsdom”库()的“html5”node.js库 我的代码是: var HTML5 = require('/usr/lib/node_modules/html5/lib/html5'), Script = process.binding('evals').Script, util = require('util'), fs = require('fs'); var p = new HTML5.Parser(); p.parse_fragment(

我正在使用基于“jsdom”库()的“html5”node.js库

我的代码是:

var  HTML5 = require('/usr/lib/node_modules/html5/lib/html5'),
     Script = process.binding('evals').Script,
     util = require('util'),
     fs = require('fs');
var p = new HTML5.Parser();
p.parse_fragment(fs.readFileSync('test.xml'));
现在我有了
p
对象,它有
p.tree.body\u指针。\u
NodeList的childNodes
(请尝试p.tree.body\u pointer.\u childNodes.constructor查看)

我想通过我的方法扩展它,以便能够调用
p.tree.body\u pointer.\u childNodes.foo()

我尝试了NodeList.prototype.foo=function(){return“OK”},但得到了未定义NodeList错误消息

我猜NodeList是在我找不到的东西里面声明的。查看源代码时,我在
core
dom
下找到了它,但我的代码中没有这两者

我还扫描了HTML5对象,但没有成功


有什么想法吗?

我能想到三种解决方案:

不过,这三个都不是很漂亮

// either ...
var NodeList = p.tree.body_pointer._childNodes.constructor;
// ...or...
var core = require('html5/node_modules/jsdom/lib/jsdom/level3/core');
var NodeList = core.dom.level3.core.NodeList;
// ...or...
var jsdom = require('html5/node_modules/jsdom');
var NodeList = jsdom.dom.level3.core.NodeList;
// ...and then...
NodeList.prototype.foo = function() { ... };