Home > Web Front-end > JS Tutorial > body text

Javascript namespace pattern code example

怪我咯
Release: 2017-07-07 15:08:27
Original
1129 people have browsed it

Namespace is created by creating a global object for a project or library, and then adding all functionality to that global variable. By reducing the number of global variables in the program, a single global variable is implemented, thereby not causing global pollution when there are a large number of functions, objects, and other variables, and also avoiding problems such as naming conflicts

However, in When adding attributes to a namespace in different files, you must first ensure that the namespace already exists, and at the same time do not cause any damage to the existing namespace. It can be achieved through non-destructive namespace functions:

The code is as follows:

var KUI = KUI || {};
KUI.utils = KUI.utils || {};

KUI.utils.namespace = function(ns){
    var parts = ns.split("."),
        object = KUI,
        i, len;

    if(parts[0] === "KUI"){
        parts = parts.slice(1);
    }

    for(i = 0, len = parts.length; i < len; i+=1){

        if(!object[parts[i]]){
            object[parts[i]] = {};
        }

        object = object[parts[i]];
    }

    return object;
};
Copy after login

Usage:

The code is as follows:

KUI.utils.namespace("KUI.common");
KUI.utils.namespace("KUI.common.testing");
KUI.utils.namespace("KUI.modules.function.plugins");
KUI.utils.namespace("format");
Copy after login

Look at what KUI has after the above:

The code is as follows:

{
    "utils": {},
    "common": {
        "testing": {}
    },
    "modules": {
        "function": {
            "plugins": {}
        }
    },
    "format": {}
}
Copy after login

Disadvantages of the namespace mode

1. Longer characters need to be entered, and more characters need to be entered. Long parsing time;
2. Dependence on a single global variable, that is, any code can modify the global instance, and other code will obtain the modified instance.

The above is the detailed content of Javascript namespace pattern code example. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template