自JavaScript中执行功能的目的是什么?

在JavaScript中,如果你想使用这个:

(function(){ //Bunch of code... })();

在这个:

//Bunch of code...

--------------解决方案-------------

它的所有关于变量范围。 在自执行的函数定义的变量,在默认情况下,只提供给代码自执行的函数中。 这使得要被写入代码,而如何变量命名为中的JavaScript代码其他块的关注。

自我调用(也称为自动调用)是当一个函数在它的定义立即执行。 这是一个芯图形,并作为对JavaScript发展的许多其他的图案的基础。

我是因为一个伟大的球迷:):

  • 它保持代码到最低限度
  • 它强制行为从表现分离
  • 它提供了一个封闭,防止命名冲突

巨大 - (为什么你应该说的好?)

  • 这是关于制定和执行函数的一次。
  • 你可以有自我执行的函数返回值,传递函数作为参数另一个函数。
  • 这是很好的封装。
  • 这也是很好的块作用域。
  • 是的,你可以附上一个自动执行功能的所有.js文件中,并可以防止全局命名空间的污染。 ;)

这里更多。

我不相信没有一个答案提隐含全局。

(function(){})()构造不保护agains暗示的全局,这对我来说是更大的担忧,看到http://yuiblog.com/blog/2006/06/01/global-domination/

基本功能块可以确保所有相关的“全局变量”您定义仅限于你的程序,它不保护您免受定义隐含的全局。 JSHint或喜欢什么你真的想对捍卫。

更简洁的var App = {}语法提供的保护水平相似,并且可以包裹在功能块上的“公开”的网页时。 (见Ember.js或SproutCore来使用这个库的构建真实世界的例子)

至于private性质去,他们是一种高估,除非你正在创建一个公共框架或库,但如果你需要实现它们,道格拉斯·克罗克福德有一些很好的想法。

命名空间。 JavaScript的作用域是函数级。

范围隔离,也许。 这样函数声明中的变量不污染外空间。

当然,一半的JS实现在那里,他们将反正。

是否有一个参数和“一串代码”返回一个函数?

var a = function(x) { return function() { document.write(x); } }(something);

关闭。 的值something被用于分配给功能asomething可以有一些变化的值(用于环路)和每一次有一个新的功能。

一个区别是,您在函数声明的变量是局部的,所以他们会消失,当你退出该功能,不与其他代码的其他变量发生冲突。

由于在Javascript中函数是第一类对象,通过定义这种方式,它有效地定义了一个“类”很像C ++或C#。

该功能可以定义局部变量,并在其具备的功能。 内部功能(​​有效实例方法)将可使用的局部变量(有效实例变量),但它们将被从脚本的其余部分隔离。

IIRC它允许你创建私有的属性和方法。

分类:JavaScript的 时间:2013-02-05 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.224 (s). 10 q(s)