2016-06-07 28 views
0
function test() { 
    alert(1); 
    return "hello"; 
} 

Function.prototype.before = function (func) { 
    var __bself = this; 
    return function() { 
     if (func.apply(this, arguments) == false) 
      return false; 

     return __bself.apply(__bself, arguments); 
    } 
}; 

test.before(function(){ 
    alert(2); 
})(); 

if (func.apply(this, arguments) == false)是什麼意思? 我不認爲這個函數會返回false。javascript:爲什麼返回值可能是假的

+5

這* *特殊函數不會返回假,但其他人可能... – ssube

回答

2

函數可以返回任何值。這包括false

如果你的函數不返回false那麼該條件內的代碼永遠不會運行。所以你可以刪除它,如果它出於某種原因惹惱你。

這裏是返回false函數的例子:

function test() { // This function is never called 
 
    console.log(1); 
 
    return "hello"; 
 
} 
 
Function.prototype.before = function (func) { 
 
    var __bself = this; 
 
    return function() { 
 
    if (func.apply(this, arguments) == false){ 
 
     return false; 
 
    } 
 
    return __bself.apply(__bself, arguments); 
 
    } 
 
}; 
 
test.before(function(){ 
 
    console.log(2); 
 
    return false; 
 
})();

相關問題