Подтвердить что ты не робот

Какая разница между подчеркиванием clone() и простым '='?

Это о лучших практиках, когда вам нужно скопировать объект в javascript..

Например:

У меня есть объект { name: 'Dodo', method: function () { console.log(this.name) }};

Мне нужно создать его копию:

var obj = { name: 'Dodo', method: function () { console.log(this.name) } };
// what is better?
var copyUnderscore = _(obj).clone();
var copySimple = obj;

Чем лучше? Спасибо!

4b9b3361

Ответ 1

_.clone полностью отличается от присваивания.

_.clone создает новый объект и копирует каждое значение из оригинала в новый объект.

Назначение просто указывает на переменную в уже существующем объекте.

Предположим, что у вас есть щенок. Позвольте назвать его Рексом.

Если вы обсуждаете Рекса с кем-то, вы назовете его Рексом или, возможно, "Собака". Обе эти ссылки относятся к животному, о котором идет речь. Назначение аналогично использованию разных фраз для вашего питомца:

rex = {
  type: 'Dog',
  age: '12 Weeks',
  name: "Rex",
  fixed: false,
  fix: function() {
    this.fixed = true;
    console.log(this.name + " Fixed.");
  }
};
theDog = rex;

// Note the use of `===`, which checks for object identity.
// Assignment (as above) is the whole point of `===`
if (theDog === rex) {
   alert("The Dog is the Same as Rex");
}