1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jamesfancy-jNs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
API.md 6.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 05:58 bbbdaff

jNs API 文档


jNs

jNs()

jNs(name: string): Namesapce

jNs 对象

jNs — это функция, которая одновременно частично выступает в роли корневого объекта пространства имён.

jNs делегирует свойства modules и методы using, define, use функции jNs(), но не делегирует свойство name. Это связано с тем, что jNs сама является функцией, а её свойство name представляет собой имя функции, которое нельзя изменить.

jNs.using()

Эквивалентно jNs().using(), см. Namesapce.prototype.using()

jNs.define()

Эквивалентно jNs().define(), см. Namespace.prototype.define()

jNs.use()

Эквивалентно jNs().use(), см. Namespace.prototype.use()

Namespace 命名空间 класс

Namespace.prototype.name

name: string

Получает название текущего пространства имён (полное имя).

Пример:

var name = jNs("jNs.demo")  // "jNs.demo"

Namespace.prototype.modules

module: string[]

Получает список модулей, которые уже были определены в текущем пространстве имён.

Пример:

var ns = jNs("jNs.demo")
ns.define("m1", function() {})
ns.define("m2", function() {})
ns.define("m3", function() {})

var modules = ns.modules    // ["m1", "m2", "m3"]

Namespace.prototype.using()

using(name: string): Namespace

Переходит в пространство имён, указанное параметром name, внутри текущего пространства имён.

Пример:

var demoNs = jNs("jNs.demo")
var demoAppNs = demoNs.using("app")
demoAppNs.name      // "jNs.demo.app"

Namespace.prototype.define()

define(name: string, factory: function): Module define(name: string, exports: any): Module define(factory: function): Module

Определяет фабричную функцию.

Функция factory принимает модуль Module в качестве первого параметра. Модуль может быть определён как именованный или анонимный. Именованные модули могут быть определены с помощью фабричной функции или путём экспорта объекта. Анонимные модули могут быть определены только с помощью фабричной функции. Если name разделено точками (``.`), то последняя часть будет именем модуля, а предыдущие части будут представлять родительские пространства имён. Фабричная функция вызывается один раз при первом использовании модуля. Её возвращаемое значение становится экспортируемым объектом модуля и сохраняется в кэше. При последующих использованиях модуля его экспортируемый объект берётся из кэша без повторного вызова фабричной функции.

Пример:

jNs("jNs.demo").define("creator", function() {
    return function(code, message) {
        return {
            code: parseInt(code) || 0,
            message: message || null
        }
    }
})

jNs.define("jNs.demo.global", {
    ver: 1.0
})

jNs("jNs.demo").define(function(m) {
    m.ns.use("global").model = m.ns.use("creator")(0, "success")
    console.log(m.ns.use("global"))

    // Object {ver: 1, model: {code: 0, message: "success"}}
}).use()

Namespace.prototype.use()

use(name: string): any

Использует модуль из текущего пространства имён и возвращает его экспортируемый объект. Если name разделено точками (``.`), то последняя часть будет именем модуля, а предыдущие части будут представлять родительские пространства имён.

Пример:

jNs("jNs.demo").define("hello", "world")
var s = jNs().use("jNs.demo.hello")     // "world"

jNs("jNs.demo").define("hi", function() {
    return "world"
})
var s = jNs.use("jNs.demo.hi")          // "world"

Module 模块 класс

Объект модуля обычно используется только в фабричных функциях для доступа к свойствам ns или namesapce. Также он может использоваться сразу после определения анонимного модуля с помощью метода use() фабричной функции.

Module.prototype.name

name: string

Возвращает имя модуля без имени родительского пространства имён. Для получения полного имени следует использовать имя родительского пространства имён вместе с именем модуля.

Пример:

jNs("jNs.demo").define("fullname", function(m) {
    return [m.ns.name, m.name].join(".")
})

jNs.use("jNs.demo.fullname")        // "jNs.demo.fullname"

Module.prototype.namespace

namesapce: Namespace

Возвращает объект пространства имён, которому принадлежит модуль. Полезно при использовании других модулей из того же пространства имён в фабричной функции.

Module.prototype.ns

ns — сокращение от namespace, см. Module.prototype.namespace

Module.prototype.use

use(): any

Возвращает экспортируемый объект модуля. Аналогичен методу Namespace.prototype.use(), но не требует параметров. Анонимные модули не могут быть вызваны с помощью Namespace.prototype.use(), только через метод use() самого модуля.

Пример:

jNs.define(function() {
    console.log("hello world")
}).use()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jamesfancy-jNs.git
git@api.gitlife.ru:oschina-mirror/jamesfancy-jNs.git
oschina-mirror
jamesfancy-jNs
jamesfancy-jNs
master