如何将原型函数添加到外部框架?
How to add a prototype function to an external framework?
我想知道如何将我自己的函数添加到一个由框架构建的对象中。所以,框架是 vis.js,我想将函数添加到 DataSet 对象。
数据集是通过以下方式生成的:
var myDataSet = new vis.DataSet();
所以我想
vis.DataSet.prototype.addFormattedNode = function () {...}
可以解决问题。遗憾的是,Chrome 开发工具报告:
Uncaught ReferenceError: DataSet is not defined
这应该是基于vis框架还没有加载吧?我尝试在开发工具中添加原型(在加载所有内容之后)并且它可以工作。可以做到这一点,但我正在寻找没有肮脏黑客的 "right way" :-)
对此有什么想法或最佳做法吗?
谢谢!
您的解决方案
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
。
我想知道如何将我自己的函数添加到一个由框架构建的对象中。所以,框架是 vis.js,我想将函数添加到 DataSet 对象。
数据集是通过以下方式生成的:
var myDataSet = new vis.DataSet();
所以我想
vis.DataSet.prototype.addFormattedNode = function () {...}
可以解决问题。遗憾的是,Chrome 开发工具报告:
Uncaught ReferenceError: DataSet is not defined
这应该是基于vis框架还没有加载吧?我尝试在开发工具中添加原型(在加载所有内容之后)并且它可以工作。可以做到这一点,但我正在寻找没有肮脏黑客的 "right way" :-)
对此有什么想法或最佳做法吗?
谢谢!
您的解决方案
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
。