Javascript中的命名空间问题
我想通过命名空间将常规函数转换为函数。 这是常规功能:
surprise();
function surprise() {
alert('TEST');
}
这与namespacing的功能相同:
var namespace = {};
namespace.surprise();
namespace.surprise = function () {
alert('TEST');
};
我得到以下错误: Uncaught TypeError: namespace.surprise is not a function
如果你在函数定义之前调用,你会得到一个TypeError
。 您必须首先定义该功能。 在定义它之前,名称空间没有surprise
功能,一旦你调用它,JavaScript就不知道你在说什么。
正常函数不需要首先定义的原因是:
函数声明是神奇的,并且使得它的标识符在其代码块*中的任何内容被执行之前被绑定。
那是从这里开始的。 function
语句必须用function
关键字定义,而不是像下面这样存储在变量中:
var myFunc = function () {
...
}
以上述方式进行治疗。 由于名称空间将函数存储到变量中,因此在定义之前,它们失去了使用的能力。
链接地址: http://www.djcxy.com/p/17049.html