Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сравнить свойства двух объектов (https://javascript.ru/forum/misc/52029-sravnit-svojjstva-dvukh-obektov.html)

vanoha 01.12.2014 12:57

tsigel, спасибо, что то вроде начало проясняться...:)

vanoha 01.12.2014 13:00

Руслан, не ферштейн, вроде всё так и осталось, как вы писали изначально

vanoha 01.12.2014 13:02

Туплю, нашел, в переменной

vanoha 01.12.2014 13:07

Спасибо за помощь обоим. Премного благодарен.

рони 01.12.2014 14:03

Цитата:

Сообщение от vanoha
. Как сделать так чтобы свойства первого, которых нет у второго присваивались второму со значениями.

http://api.jquery.com/jQuery.extend/

krutoy 02.12.2014 11:18

vanoha,
В данном случае, использовние чего-либо помимо длегирования -- маразм
param={a: 1}
defaults=Object.create(param)
defaults.b=2
alert([defaults.a, defaults.b])

tsigel 02.12.2014 12:04

krutoy, и как это будет работать для таких объектов?
//Тестовые данные
var defaults = {
    test1: true,
    test2: true,
    test3: {
        "test3.1": true,
        "test3.2": true
    }
};

var params = {
    test2: false,
    test3: {
        "test3.2": false
    }
};

vanoha 02.12.2014 12:22

рони, используя данную функцию, как описано в статье которую вы предложили, придётся присваивать значения не от defaults param, а на оборот, а то defaults вставит все свои значения. В таком случае нужно делать копию defaults, так как дальше по скрипту он ещё нужен. Как то всё ещё мудрёнее получается...

рони 02.12.2014 12:34

vanoha,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
      //Тестовые данные
var defaults = {
    test1: true,
    test2: true,
    test3: {
        "test3.1": true,
        "test3.2": true
    }
};

var params = {
    test2: false,
    test3: {
        "test3.2": false
    }
};
params = $.extend(true,{}, defaults, params);
alert('params : '+JSON.stringify(params) + '\ndefaults : '+JSON.stringify(defaults))
});
  </script>

krutoy 02.12.2014 13:14

tsigel,
Странно, если у вас ничего не наследуется, зачем вам вообще что-либо копировать или делегировать. Вопрос из разряда "в огороде бузина а в киеве дядька, исходя из этого, сколько будет дважды два?"

Если Вы хотите , чтобы просто имена были частично одинаковые, создайте класс.


Часовой пояс GMT +3, время: 21:58.