在另一个.js文件中扩展函数
Extending a function in another .js file
我在一个我无法触摸的文件中有一些 js 代码,因为如果我这样做,我就会破坏核心脚本的未来更新......
!function($, mollify) {
mollify.view.MainViewFileView = function() {
var that = this;
this._currentFolder = false;
this._currentFolderInfo = false;
this._viewStyle = 0;
this._selected = [];
this._customFolderTypes = {};
this._formatters = {
byteSize : new mollify.ui.formatters.ByteSize(new mollify.ui.formatters.Number(2, false, mollify.ui.texts.get('decimalSeparator'))),
timestamp : new mollify.ui.formatters.Timestamp(mollify.ui.texts.get('shortDateTimeFormat')),
uploadSpeed : new mollify.ui.formatters.Number(1, mollify.ui.texts.get('dataRateKbps'), mollify.ui.texts.get('decimalSeparator'))
};
this._filelist = {
columns : [],
addColumn : function(c) {
that._filelist.columns[c.id] = c;
}
};
// spec
this._filelist.addColumn({
"id": "name",
"title-key": "fileListColumnTitleName",
"sort": function(i1, i2, sort, data) {
return i1.name.toLowerCase().localeCompare(i2.name.toLowerCase()) * sort;
},
"content": function(item, data) {
return item.name;
}
});...
现在在另一个.js中,我想用另一个"列"扩展第一个文件,例如
????
// column 2
this._filelist.addColumn({
"id": "newcolumn",
"title-key": ... etc
我该如何格式化它?
谢谢
实际上,修改原始函数非常容易。 糟糕的选择是简单地覆盖它,但更好的选择是扩展MainViewFileView的原型。
mollify.view.MainViewFileView.prototype._filelist.addColumn = function({
"id": "newcolumn",
"title-key": ... etc
你不能修改原始函数(除非用新函数替换它),但你可以做的是围绕它创建一个包装函数。像这样:
mollify.view.MainViewFileViewModified = function() {
var obj = new mollify.view.MainViewFileView();
obj._filelist.addColumn(/* etc */);
return obj;
};
确保此代码在包含原始函数的代码之后执行。
相关文章:
- 为什么我需要为扩展函数设置构造函数
- 扩展函数返回内容的Javascript
- 我可以在 TypeScript 中扩展函数吗?
- 使用object.freeze()扩展函数对象-can't添加字段
- 在另一个.js文件中扩展函数
- 为什么这个扩展函数有效
- 我应该何时/为什么从 BackboneJS 模型/集合扩展函数返回
- 此代码中扩展函数的目的是什么
- 扩展函数(如 .all()、.final() 等是否有承诺标准?
- 如何使 XSLT Javascript 扩展函数返回节点集
- javascript中扩展函数的使用
- 为什么我的jQuery扩展's函数行为&;静态&;
- 如何在另一个匿名函数中扩展函数
- 扩展函数返回的属性
- 如何在JavaScript中使用许多方法扩展函数
- 扩展函数语法解释
- 合并函数接口,扩展函数原型
- Javascript可调用和原型可扩展函数
- Javascript-调用扩展函数时更改对象
- jQuery扩展函数根据条件保留链接