SORU
20 ŞUBAT 2011, Pazar


Bir Nesne klonlama Node.js içinde

Ne node.js bir nesneyi klonlamak için en iyi yoldur

bu durumu önlemek için istiyorum: örneğin ben

var obj1 = {x: 5, y:5};
var obj2 = obj1;
obj2.x = 6;
console.log(obj1.x); // logs 6

Nesne(obj1 içinde var x) basit bir çözüm olmaz bu yüzden öznitelikleri gibi karmaşık türleri içeriyor olabilir. Özyinelemeli bir klon yazmak gerekiyor kendimi ya da orada bir şey görüyor değilim bu inşa miyim?

CEVAP
23 ŞUBAT 2013, CUMARTESİ


Düşük fırfırlar, derin kopyalama:

var obj2 = JSON.parse(JSON.stringify(obj1));

Sığ bir kopya için, Düğüm yerleşik util._extend() fonksiyon.

var extend = require('util')._extend;

var obj1 = {x: 5, y:5};
var obj2 = extend({}, obj1);
obj2.x = 6;
console.log(obj1.x); // still logs 5

Kodu _extend fonksiyonu burada kaynak: https://github.com/joyent/node/blob/master/lib/util.js

exports._extend = function(origin, add) {
  // Don't do anything if add isn't an object
  if (!add || typeof add !== 'object') return origin;

  var keys = Object.keys(add);
  var i = keys.length;
  while (i--) {
    origin[keys[i]] = add[keys[i]];
  }
  return origin;
};

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoldgenieOfficial

    GoldgenieOff

    23 Temmuz 2009
  • POGProductionz

    POGProductio

    27 NİSAN 2012
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009