Jam*_*mes 3 html javascript jquery function
我想有一个函数,可以通过其他函数调用它,并在声明时自行执行.
喜欢:
function some(var_one, var_two)
{
// do something
}(var_one, var_two); // declare and execute (doesn't work)
function add_pair()
{
// do something
some(James, Amber);
}
Run Code Online (Sandbox Code Playgroud)
这样做的正确语法是什么?
您无法调用函数声明.宣言之后的那对括号根本不会做任何事情.你可以这样做:
var some;
(some = function (var_one, var_two) {
console.log(var_one, var_two);
})("a", "b");
?some("b", "c");????
Run Code Online (Sandbox Code Playgroud)
上面的例子将记录"a,b",然后是"b,c".但这看起来有点乱.你可以坚持使用你拥有的东西并像平常一样调用函数:
function some(var_one, var_two) {
console.log(var_one, var_two);
}
some("a", "b");
Run Code Online (Sandbox Code Playgroud)
更新
请注意,通过将函数声明更改为表达式(这是我上面的第一个示例中所发生的情况),您将删除在函数声明之前调用函数的能力,因为声明被提升到作用域的顶部.他们出现,并且任务发生到位.使用函数声明,以下示例完美地运行:
some("a", "b"); // Call it before it appears to be declared
function some(var_one, var_two) {
console.log(var_one, var_two);
}
Run Code Online (Sandbox Code Playgroud)
我真的看不出有什么理由需要将声明和调用合并为一个.