开发者

When to use anonymous JavaScript functions?

开发者 https://www.devze.com 2023-03-10 07:04 出处:网络
I\'m trying to understand when to use anonymous JavaScript functions. State differences between the f开发者_开发技巧unctions? Explain when you would use each.

I'm trying to understand when to use anonymous JavaScript functions.

State differences between the f开发者_开发技巧unctions? Explain when you would use each.

var test1 = function(){
    $("<div />").html("test1").appendTo(body)
};

function test2() {
    $("<div />").html("test2").appendTo(body)
}

I think the answer is that one uses anonymous function and the other doesn't to replace an empty div element. Does that seem right?


In your example it really doesn't make a huge difference. The only difference is that functions declared using function foo() { } are accessible anywhere within the same scope at any time, while functions declared using var foo = function () { } are only accessible after the code that does the assignment has run.

foo(); // ok
function foo() { ... };

bar(); // error, bar is not a function
var bar = function () { ... };
bar(); // ok

You usually use anonymous functions in cases where you don't need a named function, or where you're constructing objects:

arr.sort(function (a, b) { return a - b; });  // anonymous callback function

function MyObject() {
    this.foo = function () { ... }  // object constructor
}


You would use a function like the following (which is another type of anonymous function) when you do not want to pollute the global namespace:

(function() {
    var pollution = 'blablabla';

    function stinky() {
        // Some code
    }
})();


You may check John Resig's Secrets of JavaScript Libraries, especially page 47 for JavaScript function. Quite lengthy, but you'll learn more about JavaScript

0

精彩评论

暂无评论...
验证码 换一张
取 消