我正在编写一个Web应用程序(老实说,我不知道没有stackoverflow会做什么),但这就是我正在做的事情。
我的用户可以定义自定义功能,有人指出我应该有一种方法来警告用户该功能是空白的。
例如,用户可以将他的功能写成这样的cFunctionRun: function () {}
可悲的是,我无法控制如何创建一个函数,这意味着可能会发生这种情况。
所以现在我必须找到一种方法来告诉用户这个函数什么都不做,因为它没有什么可以做的。如果这是不可能的,那就好了,但我认为这不会有问题。
有关cFunctionRun部分的更多信息,请查看此stackOverflow问题jQuery bind custom function to appended element
答案 0 :(得分:2)
我认为这样的事情应该有效:
假设你有类似的东西:
var functions = {
aFunctionRun: function () {return false;}
bFunctionRun: function ('foobar') {}
cFunctionRun: function () {}
}
试试这段代码:
function isEmpty(function){
// Get the string from the function;
var funcString = function.toString();
// Cut off the part before the actual content of the function
funcString = funcString.substr(funcString .indexOf(')'))
.replace(/function|[(){};]/g,'') // remove the function keyword, and the following characters: (){};
.trim(); // remove any leading / trailing whitespaces and
return funcString === ''; //check if it's an empty string.
}
isEmpty(functions.aFunctionRun); // returns false
isEmpty(functions.bFunctionRun); // returns true
isEmpty(functions.cFunctionRun); // returns true
答案 1 :(得分:0)
您可以在函数上使用toString
并删除空格以查看该函数是否为空。
var isEmpty = cFunctionRun.toString().replace(/\s+/g, '') === 'function(){}';