如何将原型函数添加到外部框架

How to add a prototype function to an external framework?

本文关键字:外部 框架 添加 函数 原型      更新时间:2023-09-26

我想知道如何将自己的函数添加到由框架构建的对象中。所以,框架是vis.js,我想把函数添加到DataSet对象。

使用

生成数据集
var myDataSet = new vis.DataSet();

所以我想

vis.DataSet.prototype.addFormattedNode = function () {...}

可以做到这一点。遗憾的是,Chrome开发工具报告:

Uncaught ReferenceError: DataSet is not defined

这可能是基于vis框架尚未加载的事实,对吗?我尝试在开发工具中添加原型(在加载所有内容后),并且它有效。一个人可以这样做,但我正在寻找"正确的方式"没有肮脏的hack:-)

对此有什么想法或最佳实践吗?

谢谢!

解决方案

vis.DataSet.prototype.addFormattedNode = function () {...}

确实可以工作。当然,这只有在先加载vis的情况下才会起作用,所以你必须按照正确的顺序加载。

一个更简洁的解决方案是像这样创建一个原型的扩展:

function MyDataSet (data, options) {
  vis.DataSet.call(this, data, options);
}
MyDataSet.prototype = new vis.DataSet();
MyDataSet.prototype.addFormattedNode = function () {
  // ...
};

那么你可以用MyDataSet代替vis.DataSet