Как работает jquery extension () с несколькими объектами? - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь изменить плагин и пытаюсь понять, как работает extended () ...

Если у меня есть это:

$.extend( plugin.ext.oStdClasses, {
      "some":"one"
       },
$.extend( plugin.ext.oStdClasses, plugin.ext.xtraClasses, {
      "some":"two"
       }

Может кто-нибудь объяснить мне, что происходит?

Также я хочу расширить это своей собственной логикой, например:

$.extend( plugin.ext.xtraClasses, plugin.ext.moreClasses, {
      "some":"thing",
      "else":"too"
       }

Однако это, похоже, возвращает мне пустой предмет. Можно ли расширить стандартные классы классами xtra с помощью большего количества классов и перезаписать предыдущие классы?

Спасибо за несколько указателей

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

$. Расширение, расширение первого переданного аргумента

например:

var first = {first: true};
var second = {second: true}

$.extend(first, second);

console.log(first); // output {first: true, second: true}
console.log(second); // output {second: true}

var third = $.extend({}, first, second, {third: true});
console.log(third); // output {first: true, second: true, third: true}
1 голос
/ 23 февраля 2012

Если вы ссылаетесь на документы , в нем говорится, что первым аргументом для extend будет измененный объект, поэтому вам лучше всего сделать что-то вроде этого:

var opts = {};
$.extend(opts, plugin.ext.xtraClasses, plugin.ext.moreClasses, { 
   some: "thing",
   else: "too"
});
console.log(opts);
...