2013-10-23 1 views
0

나는 내가 건드릴 수 없어 파일에 일부 JS 코드가 파일을 확장 때문에 나는 그래서 난다른의 .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; 
     } 
    });... 

지금 ... 핵심 스크립트의 FUTUR 업데이트를 깨는거야 할 경우 첫 번째는 내가 어떻게이를 포맷 할 수 예를

???? 
// column 2 
this._filelist.addColumn({ 
     "id": "newcolumn", 
     "title-key": ... etc 

또 다른 "열"을 첫 번째 파일을 확장하고자하는 후 또 다른의 .js에 내가로드보다?

감사

답변

0

당신은 (새 함수로 교체 짧은) 원래의 기능을 수정,하지만 당신이 할 수있는 것은 주위에 래퍼 함수를 ​​만드는 것입니다 수 없습니다. 예 :

mollify.view.MainViewFileViewModified = function() { 
    var obj = new mollify.view.MainViewFileView(); 
    obj._filelist.addColumn(/* etc */); 
    return obj; 
}; 

원래 기능을 포함하는 코드 뒤에이 코드가 실행되는지 확인하십시오.

+0

감사합니다.하지만이 경우에는 "MainViewFileView"대신 "MainViewFileViewModified"라는 새 것을 초기화해야합니다. 나도 이걸 만질 수있어 ... 내가 성취하려고하는 것은 막 다른 길이야? – Nono

+0

간단하게'mollify.view.MainViewFileViewModified()'를 호출 할 수 있어야합니다. 나는 당신의 질문의 나머지가 무엇을 의미하는지 모르겠습니다. –

0

사실 원래 함수를 수정하는 것은 꽤 쉽습니다. 가난한 옵션은 간단히 덮어 쓰는 것이지만 MainViewFileView의 프로토 타입을 확장하는 것이 좋습니다.

mollify.view.MainViewFileView.prototype._filelist.addColumn = function({ 
    "id": "newcolumn", 
    "title-key": ... etc 
+0

또한 메서드를 추가/수정하거나 단순히 새로운 열을 열 스택에 푸시 할 수 있는지 묻는 경우 명확하지 않습니다. 후자의 경우에는 'mollify.view.MainViewFileView._filelist.addColumn)' – runspired

+0

네, 죄송합니다. 새 열을 넣고 싶습니다. 지금 코드를 확인해. – Nono

관련 문제