(function(){})(),function(){}()的相关探究

  (function(){})()名为自执行匿名函数,可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。

要注意,没有外部括号的情况下,即function(){}()函数不会自执行,这是一个匿名函数,但是没有赋值给一个变量

看下面的例子:

var text = (function(){
                  alert("1");
                  var a = "aa";
          })();

          console.log(a);    

这是一个自执行函数,alert会执行,内部的参数外部无法调用

function(){
                  alert("1");
                  var a = "aa";
          }();

          console.log(a);    

这个函数无法执行,会报错,匿名函数无法执行

但是赋值之后就可以执行:

        var text = function(){
                  alert("1");
                  var a = "aa";
          }();

          console.log();            

函数可以执行相当于var text=function(){};text();

另外,如果给自执行函数赋值给一个变量,其结果与上面相同,变量的值为这个自执行函数的返回值,这里可以拿之前随笔里的一个例子:

var text = (function(){
                  var a = null;
                  var b = function(){
                      return a ;
                  };

                  var public = function(value){                    //特权方法
                  };
                  public.prototype.setName = function(value){
                      a = value;
                      return this;
                  };
                  public.prototype.getName = function(){
                      return a;
                  };
                  return public;                    //返回特权方法
          })();

          console.log(text)

这里text的值为:

时间: 2024-11-01 16:09:08

(function(){})(),function(){}()的相关探究的相关文章

Function.prototype.bind相关知识点

1 var addNum = { // 创建一个方法,给val的值 加num 2 num: 5, 3 fun: function(val) { 4 return this.num + val; 5 } 6 } 7 8 Function.prototype.bind = function(obj){ // Function是对象,prototype.bind是给对象增加一个新方法 9 var method = this; 10 return function(){ 11 return method

function,new function,Function,new Function 之间的区别

测试一: var fud01 = function()  { var temp = 100; this.temp = 200; return temp + this.temp; } alert(typeof(fud01)); alert(fud01()); 运行结果: function 300 最普通的function使用方式,定一个JavaScript函数.在大扩号内的变量作用域中,this指代fud01的所有者. 测试二: var fud02 = new function() { var t

$(function(){})与 (function(){})() (function($){})() 的区别

1. $(function(){ }) 或 jQuery(function(){ }) 此函数也可以写成 jQuery(function(){ }), 用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在.不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数). 2. (function(){})() 或  function(){ })(jQuery) 此函数也可以写成   function(){ })(jQuery)

js调用函数时括号加与不加的区别,function()&function

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>当前系统时间</title> <link rel="stylesheet" href="style.css" /> <scri

javascript 中function(){},new function(),new Function(),Function 简单介绍

函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系. function使用方式 var foo01 = function() //或 function foo01() { var temp = 100; this.temp = 200; return temp + this.temp; } alert(typeof(foo01)); // function alert(foo01()); // 30

Function(Function(F...

[题目描述]: 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20,20) 如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c) 其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1) 这是个简单的递归函数,但实现起来可能会有些问题.当a,b,c

VJ 1080 Function(Function(F...

描述 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20,20) 如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c) 其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1) 这是个简单的递归函数,但实现起来可能会有些问题.当a,b,c均为15时

深入探究 Function &amp; Object 鸡蛋问题 - 黄庆的博客

引言 这篇文章深入探究下 Function.__proto__ === Function.prototype 引起的鸡生蛋蛋生鸡问题,并在这个过程中深入了解 Object.prototype. Function.prototype. function Object . function Function 之间的关系. Object.prototype Object.prototype 表示 Object 的原型对象,其 [[Prototype]] 属性是 null,访问器属性 __proto__

全面理解Javascript中Function对象的属性和方法

函数是 JavaScript 中的基本数据类型,在函数这个对象上定义了一些属性和方法,下面我们逐一来介绍这些属性和方法,这对于理解Javascript的继承机制具有一定的帮助. 属性(Properties) arguments 获取当前正在执行的 Function 对象的所有参数,是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length.还有就是arguments对象存储的是实际传递给