Предисловие
Давайте обобщу синтаксис JavaScript Sugar, с которым я недавно вступил в контакт, и поделимся им с вами.
Каждая часть конфет имеет подробные инструкции и примеры, поэтому я не скажу много.
Точная проверка типа
Кода -копия выглядит следующим образом:
/*
* @function:
* Пример проверки типа
* Этот метод позволяет вам проверить, является ли переменная ожидаемым типом данных
* @params:
* переменные OBJ, которые необходимо проверить, требуются
* Тип данных конфигурации, необязательный, по умолчанию для всех типов
* @возвращаться:
* Верно означает, что проверка проходит, ложь не удалась
* @Examples:
* typecheck ("str"); // вернуть истину
* typecheck ({}, {"[object array]": 1}); // вернуть ложь
*/
функция TypeCheck (obj, config) {
var hasop = object.prototype.hashownproperty,
tostr = object.prototype.tostring,
_config = config || {
"[объект объекта]": 1,
"[MARSE MARSE]": 1,
"[Объект объекта]": 1,
"[объект строки]": 1,
"[номер объекта]": 1,
"[объект Boolean]": 1,
"[объект функции]": 1,
"[объект не определен]": 1,
"[объект null]": 1
};
вернуть hasop.call (_config, tostr.call (obj));
}
Элегантный способ добавления прототипов
Кода -копия выглядит следующим образом:
/*
* @описание:
* Элегантный способ добавления прототипов
* Просто выполните этот фрагмент кода в общедоступном объеме
*/
if (typeof function.prototype.method! == "function") {
Function.prototype.method = function (name, fn) {
this.prototype [name] = fn;
вернуть это;
};
}
/*
* Пример использования
*/
// определить «тестовый класс»
function testfn () {
}
// Добавить метод члена тестового класса
testfn.method ("Add", function (a, b) {
вернуть A + B;
}). Method ("sub", function (a, b) {
вернуть A - B;
});
// экземпляр
var testObj = new testfn ();
// Вызов метод участника
testobj.add (1,5); // возврат 6
testobj.sub (7,2); // возврат 5
Быстро создайте пространство имен
Кода -копия выглядит следующим образом:
/*
* @function:
* Создать пространство имен
* @params:
* Экспрессия пространства имен, например: nsroot.service.impl
* Это выражение должно начинаться с корневого узла
* @возвращаться:
* Возвращает объект, который является последним узлом выражения
* @Others:
* Если вам не нравится имя NSROOT, просто найдите замену
*/
var nsroot = nsroot || {};
Nsroot.namespace = function (ex) {
var _ex = ex || "",
nsarray = _ex.split ("."),
parentnode = nsroot,
_s = "",
i = 0;
// Судите, начинается ли пространство имен с корневого узла
if (nsarray [0]! == "nsroot") {
Throw («Пространство имен должно начинаться с корневого узла!»);
}
// Удалить корневой узел
nsarray = nsarray.slice (1);
for (i = 0; i <nsarray.length; i ++) {
_s = nsarray [i];
if (parentnode [_s] === не определен) {
parentnode [_s] = {};
}
parentnode = parentnode [_s];
}
вернуть ParentNode;
};
/*
* Пример использования
*/
// Создать новое пространство имен
var Impl = nsroot.namespace ("nsroot.service.impl");
оповещение (IMPL === nsroot.service.impl); // вернуть истину
// Создать существующее пространство имен, не перезаписывая исходные данные
Nsroot.namespace ("nsroot.service.impl");
оповещение (IMPL === nsroot.service.impl); // вернуть истину