zoukankan      html  css  js  c++  java
  • JS通过匿名函数实现常量定义使用

    在编写JS代码一些特定条件的时候,程序开始需要一个变量用来存储一些声明后就不能再做操作的数据,这时候可能第一时间会想到Java里面常量的概念。

    但是在JS里面没有定义常量这一说,这时候可以使用JS中有一个关键字const可以来定义常量,但目前的浏览器似乎还不支持,如果一定要定义一些常量,

    其实可以使用闭包,匿名函数实现常量的定义。

    代码如下:

    首先定义一个匿名函数

    var Class = (function() {
      var UPPER_BOUND = 100;//定义需要的常量
      var Test={};
      // 定义了一个静态方法 获取常量的方法
      Test.getUPPER_BOUND=function() {
        return UPPER_BOUND;
      }
      return Test;
    })();

    该匿名函数类似于Java里面的递归,属于自身调用,在程序一开始的时候会被自动执行。

    当要使用该常量的时候,通过.的方式可以获取定义的常量

    var k=Class.getUPPER_BOUND();

    当需要定义多个常量的时候也可以这么写

    var Class = (function() { 
      // Private static attributes.
      var constants = {//定义了多个常量
        UPPER_BOUND: 100,
        LOWER_BOUND: -100
      }
      var Test={};
      // 定义了一个静态方法
      Test.getConstant=function(name){//获取常量的方法
        return constants[name];
      }
      return Test
    })();

    当需要使用这些数据的时候

    var k1=Class.getConstant('UPPER_BOUND');

    var k2=Class.getConstant('LOWER_BOUND');

    实际效果如下:

    我们定义了两个变量t1,t2,并将它们存入匿名函数中,在存入函数后我们又对值进行了修改。

    再次打印存入匿名函数中的值,可以看到函数中的值未改变,与之前我们存入时候的数据一致,通过这种

    定义匿名函数的方法可以灵活实现JS中常量的定义。PS:感觉有点投机取巧的意思...

  • 相关阅读:
    HDU 3709 数位dp
    Educational Codeforces Round 64 (Rated for Div. 2)-C. Match Points
    POJ 1845乘法逆元+约数和
    POJ3696 欧拉定理
    NC24953 树形dp(最小支配集)
    Codeforces 1173 C 思维+模拟
    Codeforces 1324F 树形dp+换根
    codeforces-1285D(字典树)
    面向纯小白的CLion(C++)基于Windows的安装配置教程
    HDU-2825Wireless Password(AC自动机+状压DP)
  • 原文地址:https://www.cnblogs.com/Bengi/p/6652443.html
Copyright © 2011-2022 走看看