javascript创建功能

时间:2011-02-16 02:01:29

标签: javascript function

这有什么区别:

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中的对象的函数?

4 个答案:

答案 0 :(得分:6)

“功能声明与表达式javascript”的Google搜索结果是另一个Stack Overflow问题:

What is the difference between a function expression vs declaration in JavaScript?

它引用了以下文章,该文章是关于该主题的权威性参考:

http://kangax.github.com/nfe/

答案 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) { ... }

这是函数文字如此有用的一个原因。