以下代码行之间有什么区别?
//Function declaration
function foo() { return 5; }
//Anonymous function expression
var foo = function() { return 5; }
//Named function expression
var foo = function foo() { return 5; }
Run Code Online (Sandbox Code Playgroud)
对类似问题(var functionName = function(){} vs function functionName(){})的响应是不是完全正确?
我有一个click事件是第一次自动从另一个地方触发.我的问题是它运行得太快,因为Flash和Web服务仍然定义了所需的变量.所以现在我有:
(function ($) {
$(window).load(function(){
setTimeout(function(){
$('a.play').trigger("click");
}, 5000);
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
问题是互联网连接速度慢的人5秒钟可能太快,反之亦然,对于网速较快的人来说,速度太慢.
那么在someVariable定义之前我应该怎么做延迟或超时?
我想提供辅助函数,允许复杂的基于jQuery的UI的各种组件隐藏或显示加载div(在从页面的各个部分启动Ajax调用时使用).
为此,我最初编写了这样的代码:
<script type="text/javascript">
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,我很快意识到showLoading仅在该特定文档中的范围内准备好.
遵循建议
我在全局范围内声明了showLoading,如下所示:
<script type="text/javascript">
var showLoading;
$(function ()
{
var loadingControl = $("#loading");
function showLoading() {
loadingControl.show();
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,我仍然发现showLoading在稍后执行的文档就绪块中不可用.错误是
属性"showLoading"的值为null或undefined,而不是Function对象
这种行为可以在这里看到:
jsFiddle还证明showLoading实现的文档就可以在调用它的文档就绪块之前运行.
出了什么问题,我怎样才能使这个辅助方法可用?
我在文档就绪块中定义它,因为它依赖于'#loading'可用.是否有更好的方法来实现提供辅助功能来隐藏/显示加载屏幕的相同目标?我想将它保存在辅助函数中,因为实现可能会在以后更改.
这是我的HTML/JavaScript:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="/script/jquery.js"></script>
<script type="text/javascript">
$(function(){
var $str = "hello world";
function foo() {
alert($str);
}
});
</script>
</head>
<body>
<form name="statusUpdateForm" method="post">
<input type="button" name="submitButton" value=" " onclick="foo();" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,我收到一个JavaScript错误,指出foo未定义.如何调用document.ready()中声明的JavaScript函数?