我遇到了一些Javascript似乎很愚蠢的问题:
go = function () {
alert("Go!");
}
$(function () {
go();
});
当页面加载时,我得到一个错误:
网页错误详细信息 用户代理程序: Mozilla/4.0 (兼容;MSIE8.0;Windows 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E;.NAP 1.1)时间戳:清华,2011年3月17日20:18:03世界协调时 Message: Object不支持此属性或方法行:1 Char: 1代码:0 URI:http://localhost:61710/Scripts/number.js
当我将go
初始化程序更改为:
function go() {
alert("Go!");
}
...everything工作得很好。
我遗漏了什么?另外,是否有理由使用一种形式的函数初始化器而不是另一种?
编辑:-当我使用内置的Visual服务器在IE8实例中运行代码时(启动时不进行调试),就会得到这个错误。当我在没有Visual的IE8的单独实例中运行代码时,它工作得很好。也许Visual迫使IE使用更严格的JS编译器设置?
发布于 2011-03-17 20:25:35
您应该首先声明变量:
var go = function () {
alert("Go!");
}
使用此表单的一个原因是,它可以帮助并避免使用函数污染全局命名空间(请参阅这个概念的示例这里)。
发布于 2011-03-17 20:28:11
区别(并可能帮助你决定哪一个比另一个更好)是
go = function () {
alert("Go!");
}
在解析时定义,而
function go() {
alert("Go!");
}
是在运行时定义的。
P.S.,这对我有用,但是你可能需要:
var go = ...
而不是
go = ...
发布于 2011-03-17 20:26:31
对我来说很好:
http://jsfiddle.net/vEKgX/
尽管尝试这样做,但是:
var go = function () {
alert("Go!");
}
$(go);
https://stackoverflow.com/questions/5344788
复制相似问题