Javascript 正在执行声明的(所有)函数
Javascript is executing (all) functions when they are declared
当我加载 html 页面时,系统会调用一系列 javascript 函数,尽管没有引用它们。下面的函数将提醒用户 "hello" 和“world”,即使我没有调用 validate 或 donotcall2
<script >
var validate = new function() {
alert('hello');
};
var donotcall1 = function() {
alert('hello cruel');
return false;
};
var donotcall2 = new function() {
alert(' world');
};
</script>
您使用的符号不正确。请改用以下内容。
var validate = function() {
alert("Hello");
}
..等等
请注意使用 var
而不是 function
,并且缺少 new
关键字。
声明变量的正常方法(这就是您正在做的)是:
const donotcall1 = function() {
// if you want to reassign donotcall1 later use let instead of const
alert('hello cruel');
return false;
};
(在 ES5 及更低版本中,您将使用 var
而不是 const
或 let
)
或者您可以使用
function donotcall1 () {
alert('hello cruel');
return false;
};
Note the subtle difference.
问题是您正在使用 new
。当你写:
variable = new <something>;
表示调用函数<something>
作为对象构造函数,例如
var myObj = new Array;
调用Array()
作为构造函数,返回对象赋值给myObj
。
虽然这通常是使用命名函数完成的,但它与匿名函数的工作方式完全相同,而这正是您的代码所做的。它定义了一个匿名函数,然后将其作为对象构造函数调用,并将返回的对象赋值给变量 validate
.
要将函数本身赋值给变量,不要使用new
。
var validate = function() {
alert("Hello");
};
当我加载 html 页面时,系统会调用一系列 javascript 函数,尽管没有引用它们。下面的函数将提醒用户 "hello" 和“world”,即使我没有调用 validate 或 donotcall2
<script >
var validate = new function() {
alert('hello');
};
var donotcall1 = function() {
alert('hello cruel');
return false;
};
var donotcall2 = new function() {
alert(' world');
};
</script>
您使用的符号不正确。请改用以下内容。
var validate = function() {
alert("Hello");
}
..等等
请注意使用 var
而不是 function
,并且缺少 new
关键字。
声明变量的正常方法(这就是您正在做的)是:
const donotcall1 = function() {
// if you want to reassign donotcall1 later use let instead of const
alert('hello cruel');
return false;
};
(在 ES5 及更低版本中,您将使用 var
而不是 const
或 let
)
或者您可以使用
function donotcall1 () {
alert('hello cruel');
return false;
};
Note the subtle difference.
问题是您正在使用 new
。当你写:
variable = new <something>;
表示调用函数<something>
作为对象构造函数,例如
var myObj = new Array;
调用Array()
作为构造函数,返回对象赋值给myObj
。
虽然这通常是使用命名函数完成的,但它与匿名函数的工作方式完全相同,而这正是您的代码所做的。它定义了一个匿名函数,然后将其作为对象构造函数调用,并将返回的对象赋值给变量 validate
.
要将函数本身赋值给变量,不要使用new
。
var validate = function() {
alert("Hello");
};