[英]How to make a function that can directly read any file and replace itself with the text present, in javascript?
[英]How can I make a function directly call itself?
我有這個我定義的功能,一旦定義我執行它。 有沒有辦法可以一次性結合定義和執行,因為這是唯一使用此功能的地方?
$scope.examWatchCollection = function () {
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function (newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
};
$scope.examWatchCollection();
你的問題太復雜了。 簡單來說,根本不要創建一個功能。
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function(newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
如果你仍然需要一個功能,你可以像這樣制作一個IIFE
(function() {
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function(newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
}());
第二個版本,創建一個函數對象,然后立即調用它。 通常,這用於限制代碼段使用的變量的范圍,因為我們在JavaScript中沒有塊范圍。 但我堅信你應該選擇第一個選項。
(function () {
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function (newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
})();
如果您從未使用它,那么您不需要保留對它的引用。 只需匿名定義並立即執行:
(function () {
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function (newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
}());
在JavaScript中,函數是一個像任何其他對象一樣的對象。 您可以從其名稱或函數本身的定義中執行它。 任何函數,無論是通過名稱引用還是內聯定義,如果后面都有括號,則會執行。
根本不創建一個函數甚至更簡單,執行代碼:
$scope.$watchCollection('[config.examStatusId, config.examTypeId]',
function (newValue, oldValue) {
if (_o.checkWatch(newValue, oldValue)) {
_u.putConfigs($scope.config);
$scope.grid.backup = [];
$scope.grid.data = [];
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.