首页 > 网站 > WEB开发 > 正文

JavaScript Patterns 5.7 Object Constants

2024-04-27 14:22:01
字体:
来源:转载
供稿:网友

javaScript Patterns 5.7 Object Constants

2014-07-01 23:01 by 小郝(Kaibo Hao), ... 阅读, ... 评论, 收藏, 编辑

PRinciple

  1. Make variables shouldn't be changed stand out using all caps.
  2. Add constants as static properties to the constructor function.
// constructorvar Widget = function () {    // implementation...};// constantsWidget.MAX_HEIGHT = 320;Widget.MAX_WIDTH = 480;

  1. General-purpose constant object
set(name, value) // To define a new constantisDefined(name) // To check whether a constant existsget(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 definedconstant.isDefined("maxwidth"); // false// defineconstant.set("maxwidth", 480); // true// check againconstant.isDefined("maxwidth"); // true// attempt to redefineconstant.set("maxwidth", 320); // false// is the value still intact?constant.get("maxwidth"); // 480

References:

Javascript Patterns -by Stoyan Stefanov(O`Reilly)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表