今天工作时,我的大脑在 javascript 的某个时刻被堆栈了。
我想知道两者之间的基本区别是什么
function FunctionName(){
//Code goes here;
}
还有
var MyFuncCollection = new Object();
MyFuncCollection.FunctionName = function(){
//Code goes here;
}
两者的工作原理相同。那和那时有什么区别呢。使用带有对象名称的函数有什么好处吗?
我已阅读Question 。但它使用变量并分配函数特定变量。我想创建对象并在单个对象中分配多个函数。
最佳答案
第一个定义了全局函数名称。如果您加载两个库,并且它们都尝试定义 FunctionName
,它们将相互冲突。您只能得到最后定义的那个。
第二个只有一个全局变量MyFuncCollection
。所有函数都定义为该变量内的属性。因此,如果您有两个尝试定义相同函数名称的集合,一个将是 FuncCollection1.FunctionName
,另一个将是 FuncCollection2.FunctionName
,并且不会有任何冲突。
唯一的冲突是两个集合都尝试对集合本身使用相同的名称,但这种情况不太可能发生。但这并非完全闻所未闻:有一些库尝试使用 $
作为其主要标识符。 jQuery 是最突出的,它提供 jQuery.noConflict()
来删除其 $
绑定(bind)并恢复到以前的绑定(bind)。
关于javascript - function FunctionName(){} 和 object.FunctionName = function(){} 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795968/