2011-09-17 72 views
0

我希望有一个函数可以在调用特定函数之前检查条件是否为真。我的目标是在另一个函数中有一行代码(被调用的函数)。这个函数应该在任何其他代码执行之前运行。下面是一些伪证明我的意思:有没有办法用JavaScript中的另一个函数结束函数?

function checkFunction(){ 
//checks if a condition is true if so end function, else continue function 
} 
function aFunction(){ 
checkFunction(); 
//some code 
} 

我知道我可以做一个包含返回条件语句,但我想保持这种短如果可能的话。

谢谢你们的时间。

+0

把它包在一个try {}赶上{},如果你需要结束只是做一些像“undefined_var /未定义”,p –

+0

那么,是什么问题,是什么呢?你尝试过什么吗? – Bakudan

+0

为了可读性而不是紧凑性。你总是可以用工具缩小代码(他们会做得更好)。 –

回答

1

没有什么专门为你想要的东西,它反正就不好的做法近乎。但是,你能得到它漂亮的只是写东西喜欢简洁:

function aFunction() 
{ 
    if (!checkFunction()) return; 
    //some code 
} 
+0

在什么情况下会执行退货?对或错? –

+0

当'checkFunction()'返回'false'时,'aFunction'会立即返回。如果您希望在checkFunction()返回true时立即返回它,只需删除'!' – adpalumbo

+0

它从我在元素上创建的属性获取布尔值。像这样:'

-content-
'它会读取属性值作为字符串还是布尔值?我问的原因是因为它正在执行代码,无论它是真是假。 –

0

你可能想要一个assert般的函数,但反过来想:

function stopIfTrue(x) { 
    if(x === true) throw "stop function"; // can be any string 
} 

然后:

function aFunction(){ 
    stopIfTrue(something); // if 'something' is true an error will be thrown; function will exit 
    //some code 
} 
0

你能做的就是动态地改变其他功能的伎俩。所以

function make_wrapped(before, after){ 
    return function(){ 
     if(before()) return; 
     after.apply(this, arguments); 
    } 
} 

//set aFunction to be the new function 
aFunction = make_wrapped(checkFunction, aFunction); 

编辑:我误解了问题。这可能比你需要的更复杂。

0

我只想做到这一点:

function checkFunction(){ 
    return (condition); 
} 

function aFunction(){ 
    if(!checkFunction()) return; 
    //some code 
} 
+0

这个方法在什么情况下执行返回,是true还是false? –

+0

@Felipe:当'checkFunction()'返回一个值为'false'的值。 –

0

如果你正在尝试做的是这样的:

function aFunction() 
{ 
    if(checkFunction()) 
    { 
     return; 
    } 
    //somecode 
} 

不使用机能缺失()返回,你可以做这样的:

function aFunction() 
{ 
    if(!checkFunction()) 
    { 
     //somecode 
    } 
} 
相关问题