码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript Patterns 5.7 Object Constants

时间:2014-07-02 20:28:47      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:style   blog   java   color   strong   width   

Principle

  1. Make variables shouldn‘t be changed stand out using all caps.
  2. Add constants as static properties to the constructor function.
// constructor

var Widget = function () {

    // implementation...

};

// constants

Widget.MAX_HEIGHT = 320;

Widget.MAX_WIDTH = 480;

 

  1. General-purpose constant object
set(name, value) // To define a new constant

isDefined(name) // To check whether a constant exists

get(name) // To get the value of a constant

 

var constant = (function () {

    var constants = {},

        ownProp = Object.prototype.hasOwnProperty,

        allowed = {

            string: 1,

            number: 1,

            boolean: 1

        },

        prefix = (Math.random() + "_").slice(2);

    return {

        set: function (name, value) {

            if (this.isDefined(name)) {

                return false;

            }

            if (!ownProp.call(allowed, typeof value)) {

                return false;

            }

            constants[prefix + name] = value;

            return true;

        },

        isDefined: function (name) {

            return ownProp.call(constants, prefix + name);

        },

        get: function (name) {

            if (this.isDefined(name)) {

                return constants[prefix + name];

            }

            return null;

        }

    };

}());

 

Testing the implementation:

// check if defined

constant.isDefined("maxwidth"); // false

// define

constant.set("maxwidth", 480); // true

// check again

constant.isDefined("maxwidth"); // true

// attempt to redefine

constant.set("maxwidth", 320); // false

// is the value still intact?

constant.get("maxwidth"); // 480

 

References: 

JavaScript Patterns - by Stoyan Stefanov (O`Reilly)

JavaScript Patterns 5.7 Object Constants,布布扣,bubuko.com

JavaScript Patterns 5.7 Object Constants

标签:style   blog   java   color   strong   width   

原文地址:http://www.cnblogs.com/haokaibo/p/Object-Constants.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!