这有什么区别:
var doSomething=function()
{
//do blah blah blah...
}
而且:
function doSomething()
{
//do blah blah blah...
}
另一个问题: 在PHP中,我们通过这样做来创建一个函数:
function doSomething(a,b)
{
//do something to variable a and b...
}
在JavaScript中,我们可能在函数之前有一个对象:
object.doSomething(a);
我的第二个问题是,你如何创建一个需要JavaScript中的对象的函数?
答案 0 :(得分:6)
“功能声明与表达式javascript”的Google搜索结果是另一个Stack Overflow问题:
What is the difference between a function expression vs declaration in JavaScript?
它引用了以下文章,该文章是关于该主题的权威性参考:
答案 1 :(得分:1)
var fun = function() {}
和function fun() {}
之间的区别在于,在第一种情况下,它存储在变量fun
中。要调用该函数,您必须调用fun()
。将它放在变量中可以让你传递函数。
您可以使用功能
创建对象function MyClass() {
this.fun = function() { alert('Hello world'); }
}
var obj = new MyClass();
obj.fun();
或JSON
var obj = {
fun: function() { alert('Hello world'); }
};
obj.fun();
您可以使用新功能进一步扩展对象或其原型。
编辑。对不起,错误的答案是:我们不应该在凌晨4点尝试做这些事情。
答案 2 :(得分:0)
一次一个问题。
回答你的第一个问题,没有太大的区别。
function doSomething() {}
在技术上等同于:
var doSomething;
doSomething = function() {};
从技术上讲,在这种情况下会发生变量声明获取hoisted到脚本的顶部。
答案 3 :(得分:0)
对于问题的第二部分,我们只是做一些像
这样的事情object.doSomething = function(a) { ... }
这是函数文字如此有用的一个原因。