當執行下面的ViewModel函數時,錯誤未捕獲TypeError:self.deleteInvisibleColumns不是函數被引發 - 這是爲什麼?未定義不是函數使用this和self
function ViewModel(vm) {
var self = this;
this.rows = ko.observableArray(vm.Rows);
self.deleteInvisibleColumns();
this.deleteInvisibleColumns = function() {
for (var i = 0; i < vm.Rows.length; i++) {
var row = vm.Rows[i];
var keys = Object.keys(row);
for (var k = 0; k < keys.length; k++) {
if (vm.VisibleColumns.indexOf(keys[k]) === (-1)) {
delete row[keys[k]];
};
};
};
};
電話定義之前的函數? – Hacketo
您可能會對* hoisting *的工作方式感到困惑......?並非所有的Javascript代碼都是隨機重新排序的。有些事情確實還是按順序執行。 – deceze
Doh!謝謝Hacketo,我忘了Javascript沒有編譯 - C#中太長了! –