Два метода поддерживаются в массиве JS, Shift () и Pop (), которые относятся к удалению значения с передней и последней стороны данных, а также возврату удаленного значения. Вы поймете, посмотрев на пример:
Кода -копия выглядит следующим образом:
var arr = ['s', 'o', 'f', 'i', 's', 's', 'h'];
arr.shift (); // возвращать 's'
Arr; // В настоящее время ['o', 'f', 'i', 's', 'h']
arr.pop () // return 'h'
arr // в настоящее время ['o', 'f', 'i', 's']
Во многих фреймворках JS очень распространено, что метод предоставляет вам передать несколько параметров, и некоторые из этих параметров можно игнорировать. Эти незначительные моменты могут быть первыми или последними. Традиционный способ написания - определить, существуют ли параметры или количество параметров для определения конечного значения.
Здесь мы можем использовать объект аргументов функции, а также сдвинуть и заплеснуть в массиве для достижения гибких приложений.
1. Используйте сдвиг
Как реализовать метод .bind (), пусть FN API будет следующим:
Кода -копия выглядит следующим образом:
// Объем FN ограничен объектом
// За исключением объекта, все параметры методов привязки будут переданы в FN
fn.bind (объект, param1, param2, [, paramn]);
Сначала посмотрите на пример. Конечно, этот пример может быть более важным для применения вызова и применения. Однако мы хотим поговорить о применении сдвига:
Кода -копия выглядит следующим образом:
// [`.bind`] (http://www.prototypejs.org/api/function/bind) метод из прототипа.js
Function.prototype.bind = function () {
var fn = это,
args = array.prototype.slice.call (аргументы),
Object = args.shift ();
return function () {
вернуть fn.apply (объект,
args.concat (array.prototype.slice.call (аргументы)));
};
};
Мы можем использовать сдвиг в объект аргументов (массивоподобный объект, который необходимо преобразовать в настоящий массив), чтобы вывести его. Например, этот метод в основном использует их для разделения объекта как область применения, а затем ловко передавать оставшуюся массив параметров в FN, то есть вызовите функцию, которую мы хотим ограничить объем объекта.
2. Используйте поп
Недавно мы пробуем Seajs, давайте возьмем один из его API в качестве примера:
Кода -копия выглядит следующим образом:
Определите (ID, зависимости, обратный вызов)
Это определяет API, идентификатор и зависимости модуля и зависимости. Здесь, как реализовать эту поддержку? Если вы используете, если судить, вам действительно нужно, если (аргументы === 1) {...} elseif ... много из них. Конечно, это иногда имеет преимущества (думаете об этом). Здесь мы можем использовать POP, чтобы облегчить реализацию такой поддержки:
Кода -копия выглядит следующим образом:
var define = function () {
// Установите этот обратный вызов
var args = [] .slice.call (аргументы)
fn = args.pop ();
// Сделай несколько других волшебных вещей
fn.apply (null, args)
// ...
},
callback = function () {
var args = аргументы, i = 0, len = args.length;
if (len === 0) console.log ('только один обратный вызов);
for (; i <len; i ++) {
console.log (args [i]);
}
}
// Проверьте результаты выполнения трех из них
определить (обратный вызов);
определить («Есть два параметра», обратный вызов);
определить («Есть три параметра», «Привет, мир», обратный вызов);
Два дня назад я процитировал что -то, когда использовал несколько трюков в JS. Хотя я всегда прошу себя не слишком погружена в код, код, а не только JS, всегда дает нам слишком много удовольствия. Как это не нравится. Ха -ха.