`
kstgjfk403
  • 浏览: 30571 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javaScript -匿名函数

阅读更多

一、匿名函数:没有函数名;单独的匿名函数是无法运行的,可通过把匿名函数赋值给变量来运行。

var dd = (function(){
         return 'jack';
 })();
 alert(dd);// jack

 

二、块级作用域(私有作用域):

     function box(){

         {//for:块级作用域: 出了for的范围,i值未被销毁,而且不会被后面的重复声明覆盖掉           
         for (var i=0; i < 5; i++)         

     };
         var i ; //但重新给i赋值则会覆盖掉原来的值
         alert(i); //还是返回5:重新声明后值不会变
     }

   //使用块级作用域: 即使i出了块级作用域后就销毁
    function box(){
        (function(){//用包含自我执行的匿名函数来实现块级作用域
           for(var i=0; i<5; i++){
            alert(i);//变量i出了匿名函数后即被销毁
        }
        })();
        alert(i);//出了匿名函数,i会不被识别
    }

块级作用域用处:代替全局作用域。

//使用块级作用域实现,防止变更污染,不会有内存占用问题:匿名函数执行完就被销毁了
    (function(){
        var age = 150;
        alert(age);
    })();
    alert(age);// 报未定义错误,说明 age在全局作用域中不会被访问到

 

三、私有属性(私有变量)

私有化运行机制:方式1:特权方法实现

function Box(){
        var age = 100; //私有属性
        function run(){ //私有方法
           return '运行中....'; 
        };
        this.publicMethod = function(){//外部 可以访问的公共接口(特权方法)
            return age + run();
        };
    }
    var box = new Box();

    //可以访问到函数内部私有的属性和方法
    alert(box.publicMethod());

 

私有化运行机制:方式2:构造方法传参实现

function Desk(value){
        var user = value; //私有变量
        this.getUser = function(){//方法不会共享
            return user;
        };
        this.setUser = function(value){//可通过特权方法实现赋值
           user = value; 
        };
    }
    var d1 = new Desk('Lee');
    var d2 = new Desk('kkk');
    alert(d1.getUser());//返回Lee
    alert(d2.getUser());//返回kkk

 

私有化运行机制:方式3:通过静态私有属性实现(即可以被不同的实例共享的属性):

(function (){ //匿名函数内部的构造函数外部无法访问,需将其设为全局变量方可
           var user = ""; //私有变量
           // Box = function(value){// 不加var,创建一个全局的构造 函数,使得外面可以访问
               // user = value;
               // this.getUser = function(){
                   // return user;
               // };
           // }; //一般不通过此方法共享
          
           Box = function(value){// 一般通过原型来实现静态私有属性的访问,且属性是共享的
               user = value;
           };
           Box.prototype.getUser = function(){
               return user;
           };
           Box.prototype.setValue = function(value){
               user = value;
           };
       })();
      var b1 = new Box('lee');
      var b2 = new Box('kkkk');
      alert(b1.getUser());//返回lee
      alert(b2.setUser('oooo'));
      alert(b1.getUser());//此时会返回ooo, 因为是共享的

 

 

 

0
0
分享到:
评论

相关推荐

    Javascript的匿名函数

    ### JavaScript中的匿名函数 在JavaScript编程语言中,**匿名函数**是一种非常实用且常见的特性,它们没有具体的名称,通常作为参数传递给其他函数或者在需要函数作为值的地方使用。这种类型的函数可以增加代码的...

    Javascript的匿名函数讲解

    匿名函数是JavaScript语言中的一个强大特性,它允许我们不给函数命名,直接声明并执行。在本文中,我们将深入了解匿名函数的定义、特点、代码模式以及应用。 首先,需要明白什么是匿名函数。在JavaScript中,定义...

    JavaScript中匿名函数的用法及优缺点详解_.docx

    JavaScript中的匿名函数是一种不具有名称的函数,它们主要通过函数表达式或Function构造函数来创建。匿名函数在JavaScript中有着广泛的应用,特别是在处理模块化、防止全局变量污染、以及实现函数式编程等方面。 1....

    深入研究JavaScript的匿名函数.doc

    JavaScript中的匿名函数是一种没有明确标识符的函数表达式,它可以在需要时被立即执行或作为其他数据结构的一部分使用。在JavaScript中,函数是第一类对象,这意味着它们可以被赋值给变量、作为参数传递和作为其他...

    javascript经典特效---函数计算.rar

    3. **匿名函数与立即执行函数**:在JavaScript中,我们还可以使用匿名函数,即没有名字的函数,通常用于一次性执行的任务。而立即执行函数(IIFE, Immediately Invoked Function Expression)则是一种特殊的匿名函数...

    JavaScript中匿名函数的用法及优缺点详解_.pdf

    JavaScript中的匿名函数是一种不具有名称的函数,它们主要通过函数表达式或Function构造函数来创建。匿名函数在JavaScript中有着广泛的应用,特别是在避免全局变量污染、实现模块化和函数式编程等方面。以下是对匿名...

    js代码-面试题-- 匿名函数命名

    本话题将深入探讨JavaScript中的匿名函数及其在面试中常见的命名问题。 匿名函数,顾名思义,就是没有名字的函数。它们通常以表达式的形式出现,如`function() { ... }`或`(function() { ... })()`。在JavaScript中...

    JavaScript 匿名函数和闭包介绍

    在讨论JavaScript编程语言时,匿名函数和闭包是两个重要的概念,它们在函数式编程和模块化代码设计中扮演着核心角色。匿名函数是没有具体名称的函数,它们可以是独立的,也可以是表达式的一部分,通常用于定义临时...

    匿名函数的一点知识

    ### 知识点:匿名函数在JavaScript中的应用与特性 #### 标题解析:“匿名函数的一点知识” 标题“匿名函数的一点知识”简洁明了地指出本文将围绕JavaScript中的匿名函数进行讲解,旨在帮助读者深入理解匿名函数的...

    javascript 闭包、匿名函数、作用域链

    JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...

    (转载)JavaScript中匿名函数,函数直接量和闭包.docx

    在JavaScript中,匿名函数、函数直接量和闭包是三种非常重要的概念,它们在编程实践中有着广泛的应用。让我们逐一深入探讨这些概念。 1. **匿名函数**: 匿名函数是指没有名字的函数,通常作为表达式的一部分存在...

    s2-javascript-上机练习

    3. **函数**:定义函数、传递参数、返回值、匿名函数和箭头函数的概念。 4. **数组**:创建数组、访问和修改数组元素、数组方法(如push、pop、shift、unshift、slice、splice等)。 5. **对象**:创建对象、访问和...

    JavaScript程序设计课件:匿名函数.pptx

    匿名函数 5.5 匿名函数 函数表达式 概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。 5.5 匿名函数 函数表达式 var fn...

    javascript笔记之匿名函数和闭包.docx

    在JavaScript中,匿名函数是一种没有名称的函数,通常作为参数传递或者用于立即执行。在上述文档中,我们看到几种不同的匿名函数使用方式: 1. **匿名函数自执行**:`(function(){})()`,这种写法会立即执行该匿名...

    javascript笔记之匿名函数和闭包

    JavaScript中的匿名函数和闭包是两个非常重要的概念,它们在函数式编程和模块化开发中起着关键作用。 首先,让我们来理解匿名函数。匿名函数,顾名思义,是没有名称的函数。在JavaScript中,我们可以直接定义一个不...

    Javascript的匿名函数小结

    本文将详细阐述JavaScript匿名函数的定义、不同定义方式、与Function构造函数的区别,以及匿名函数的常见使用模式和应用场景。 **一、匿名函数的定义** 在JavaScript中,匿名函数可以通过以下三种方式创建: 1. *...

Global site tag (gtag.js) - Google Analytics