Частичное обновление модели Backbone.js

Можно ли отправить только измененные свойства модели при сохранении изменений?

Кстати, есть ли какие-нибудь «официальный» Backbone. Свойства, которые я хочу иметь: Если функция имеет только один аргумент curry ...

Я пытаюсь создать функцию карри , которую можно применить к любой функции и вернуть другую с одним аргументом применяется. Свойства, которые я хочу иметь:

  1. Если функция имеет только один аргумент, функция карри должна возвращать значение: f (а); curry (f, x) = f (x);
  2. Если функция имеет много аргументов, currey должен повторно запустить каррированную функцию: g (a1, a2, .., aN); curry (g, x) = g2 (a2, .., aN): g2 (a2, .. aN) = g (x, a2, ..., aN)
  3. Свойство длины каррированной функции должно работать "как необходимо " g.length = N => curry (g, x) .length = N-1

В Prototype Framework есть несколько реализаций карри, которые обсуждаются в одном блоге . Но эта реализация не годится, потому что она не работает с функциями только с одним аргументом (1), а также возвращает атрибут length функции, равный 0 (3).

Для первого свойства существует простая реализация:

 function curry(f,x) {
    if (f.length == 1) return f(x);
    ...
 }

Но я не знаю, как работать с третьим правилом, т.е. функция может быть построена как внутренняя функция, так как будет вложенное лексическое окружение, и я смогу использовать f:

function curry(f,x) {
   return function() { ... }
}

, но в этом случае я не буду дольше сможет явно задавать параметры. С другой стороны, функция может быть создана с помощью оператора 'new Function', что-то вроде этого:

 function curry(f,x) {
    var args = [];
    for (var i=1; i

Но в этой ситуации f и x не будут связаны, потому что анонимная функция будет создана в Глобальная лексическая среда.

Итак, вопросы:

  1. есть ли способ явно установить количество параметров при создании функции с ключевым словом function?
  2. есть ли способ задать среду для функции, созданной с помощью оператора 'new Function'?
  3. есть ли способ решить мою проблему любым другим способом?

8
задан Lightness Races with Monica 11 March 2011 в 13:26
поделиться