What are the benefits of a closure, and when are they typically used?

前端 未结 3 1810
攒了一身酷
攒了一身酷 2020-12-29 07:19

I\'m a web developer, but lots of folks are looking for slightly more advanced skills and understanding closures seems to be at the forefront of this.

I get the whol

相关标签:
3条回答
  • 2020-12-29 07:50

    There are many JS books available, but you really should grab a copy of David Flanagan's JavaScript: The Definitive Guide if you really want to learn this (still the best JS reference IMHO). Read the chapter on closures and you'll get a lot more in-depth knowledge than anyone can give you in a reply here.

    0 讨论(0)
  • 2020-12-29 07:59

    A closure is a code block with bound variables - it "catches" its variables from their outer context - but it is independent from that same context.

    A practical use in javascript is when defining events or callbacks - you declare a closure to be executed on the click of a button, for instance, but this closure can reference variables declared on the caller scope.

    jQuery uses closures a lot - btw this is a good link for understanding closures for jQuery: A Graphical Explanation Of Javascript Closures In A jQuery Context.

    Hope it helps.

    0 讨论(0)
  • 2020-12-29 08:08

    They can be good for lots of things, for example, visibility (like private members in traditional OO).

    var count = function(num) {
    
       return function(add) {
           add = add || 1;
           num += add;
           return num;
       }
    
    }
    

    See it.

    My count() can be seeded with a number. When I assign a variable to the return, I can call it with an optional number to add to the internal num (an argument originally, but still part of the scope of the returned function).

    This is a pretty good overview.

    See also on Stack Overflow

    • What is a practical use for a closure in JavaScript?
    • How does a javascript closure work ?
    • When actually is a closure created?
    • more...
    0 讨论(0)
提交回复
热议问题