zametka_po_js

Если внутри функции transcriptionsPanel использовать объект options.div, то несмотря на то что используется var из-за $('<div/>', {class: 'transcriptions-vowel'}) будет использоваться один и тот же элемент в DOM при разных вызовах функции transcriptionsPanel. Будет полная фигня, никогда так не делать.

1
2
3
4
5
6
7
8
9
10
11
12
(function($) {
// Объект для гласных звуков
var defaults = {
div: $('<div/>', {class: 'transcriptions-vowel'}),
sounds: [['i:', 'ı', 'e', 'ə:', 'ə', 'ʌ', 'ˈ'], ['ɔ:', 'ɔ', 'u:', 'u', 'a:', 'æ', 'ˌ']]
};
$.fn.transcriptionsPanel = function(params) {
var options = $.extend({}, defaults, options, params);
...
}
})(jQuery);

Склонировать объект можно таким способом (в случае с примером выше клонирование не поможет):

1
2
3
var cloneOfA = JSON.parse(JSON.stringify(a));
или
var copiedObject = jQuery.extend(true, {}, originalObject);

Поделиться