Heim Web-Frontend js-Tutorial Diskussion über JS-Deep-Copy-Beispiele

Diskussion über JS-Deep-Copy-Beispiele

Mar 06, 2018 pm 02:15 PM
javascript 实例 探讨

Deep Copy dient zum Kopieren des übergeordneten Objekts in das untergeordnete Objekt, und der Speicher und die nachfolgenden Vorgänge der beiden wirken sich nicht gegenseitig aus. Dieser Artikel teilt Ihnen hauptsächlich die Diskussion von js Deep Copy-Beispielen mit und hofft, allen zu helfen.

(1) Methode 1

function copy(obj1,obj2){
  var obj2=obj2||{}; 
  for(var name in obj1){    if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象
      obj2[name]= (obj1[name].constructor===Array)?[]:{}; 
      copy(obj1[name],obj2[name]); //然后来无限递归
    }else{
      obj2[name]=obj1[name];  //如果不是对象,直接赋值。
    }
  }  return obj2; 
}
Nach dem Login kopieren
Nach dem Login kopieren

Anwendung:

var obj1 = {
    se:[{a:1,b:2},{c:3}],
    sa:{a:"g"},
    sc:function(){console.log(1)}
}var n_obj = copy(obj1,{})
console.log(n_obj)
Nach dem Login kopieren
Nach dem Login kopieren

(2) Methode 2

function d_clone(obj) {
    return Object.getPrototypeOf(Object.create(obj));
}
Nach dem Login kopieren
Nach dem Login kopieren

Anwendung :

var obj1 = {
    se:[{a:1,b:2},{c:3}],
    sa:{a:"g"},
    sc:function(){console.log(1)}
}var n2_obj = d_clone(obj1);
console.log(n2_obj)
Nach dem Login kopieren
Nach dem Login kopieren

(3) Methode 3

JSON.parse(JSON.stringify(obj)
Nach dem Login kopieren
Nach dem Login kopieren

Erklärung: Die Attribute von obj können keine Funktionen enthalten.

(1) Methode 1

function copy(obj1,obj2){
  var obj2=obj2||{}; 
  for(var name in obj1){    if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象
      obj2[name]= (obj1[name].constructor===Array)?[]:{}; 
      copy(obj1[name],obj2[name]); //然后来无限递归
    }else{
      obj2[name]=obj1[name];  //如果不是对象,直接赋值。
    }
  }  return obj2; 
}
Nach dem Login kopieren
Nach dem Login kopieren

Anwendung:

var obj1 = {
    se:[{a:1,b:2},{c:3}],
    sa:{a:"g"},
    sc:function(){console.log(1)}
}var n_obj = copy(obj1,{})
console.log(n_obj)
Nach dem Login kopieren
Nach dem Login kopieren

(2) Methode 2

function d_clone(obj) {
    return Object.getPrototypeOf(Object.create(obj));
}
Nach dem Login kopieren
Nach dem Login kopieren

Anwendung :

var obj1 = {
    se:[{a:1,b:2},{c:3}],
    sa:{a:"g"},
    sc:function(){console.log(1)}
}var n2_obj = d_clone(obj1);
console.log(n2_obj)
Nach dem Login kopieren
Nach dem Login kopieren

(3) Methode 3

JSON.parse(JSON.stringify(obj)
Nach dem Login kopieren
Nach dem Login kopieren

Erklärung: Die Attribute von obj können keine Funktionen enthalten.

Verwandte Empfehlungen:

Verwandte Empfehlungen:

Vertiefendes Verständnis der JavaScript-Deep-Copy-Leistung

Was ist js Deep Copy und Shallow Copy und ihre Implementierung

Der Unterschied zwischen JavaScript Shallow Copy und Deep Copy

Das obige ist der detaillierte Inhalt vonDiskussion über JS-Deep-Copy-Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Erfahren Sie Best-Practice-Beispiele für die Zeigerkonvertierung in Golang Erfahren Sie Best-Practice-Beispiele für die Zeigerkonvertierung in Golang Feb 24, 2024 pm 03:51 PM

Golang ist eine leistungsstarke und effiziente Programmiersprache, mit der sich verschiedene Anwendungen und Dienste entwickeln lassen. In Golang sind Zeiger ein sehr wichtiges Konzept, das uns helfen kann, Daten flexibler und effizienter zu verwalten. Die Zeigerkonvertierung bezieht sich auf den Prozess der Zeigeroperation zwischen verschiedenen Typen. In diesem Artikel werden anhand konkreter Beispiele die Best Practices der Zeigerkonvertierung in Golang erläutert. 1. Grundkonzepte In Golang hat jede Variable eine Adresse, und die Adresse ist der Speicherort der Variablen im Speicher.

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

Tiefer Einblick: Was ist das Django-Framework? Tiefer Einblick: Was ist das Django-Framework? Jan 19, 2024 am 09:23 AM

Das Django-Framework ist ein Python-Framework für Webanwendungen, das eine einfache und leistungsstarke Möglichkeit zum Erstellen von Webanwendungen bietet. Tatsächlich hat sich Django zu einem der beliebtesten Python-Webentwicklungs-Frameworks entwickelt und ist für viele Unternehmen, darunter Instagram und Pinterest, zur ersten Wahl geworden. Dieser Artikel befasst sich mit dem Django-Framework, einschließlich grundlegender Konzepte und wichtiger Komponenten sowie spezifischer Codebeispiele. Django-GrundkonzepteDjan

Die Beziehung zwischen der Anzahl der Oracle-Instanzen und der Datenbankleistung Die Beziehung zwischen der Anzahl der Oracle-Instanzen und der Datenbankleistung Mar 08, 2024 am 09:27 AM

Die Beziehung zwischen der Anzahl der Oracle-Instanzen und der Datenbankleistung Oracle-Datenbank ist eines der bekanntesten relationalen Datenbankverwaltungssysteme in der Branche und wird häufig für die Datenspeicherung und -verwaltung auf Unternehmensebene verwendet. In Oracle-Datenbanken ist die Instanz ein sehr wichtiges Konzept. Instanz bezieht sich auf die laufende Umgebung der Oracle-Datenbank im Speicher. Jede Instanz verfügt über eine unabhängige Speicherstruktur und einen Hintergrundprozess, der zur Verarbeitung von Benutzeranforderungen und zur Verwaltung von Datenbankvorgängen verwendet wird. Die Anzahl der Instanzen hat einen wichtigen Einfluss auf die Leistung und Stabilität der Oracle-Datenbank.

So implementieren Sie ein elektronisches Online-Signatursystem mit WebSocket und JavaScript So implementieren Sie ein elektronisches Online-Signatursystem mit WebSocket und JavaScript Dec 18, 2023 pm 03:09 PM

Überblick über die Verwendung von WebSocket und JavaScript zur Implementierung eines elektronischen Online-Signatursystems: Mit dem Aufkommen des digitalen Zeitalters werden elektronische Signaturen in verschiedenen Branchen häufig verwendet, um herkömmliche Papiersignaturen zu ersetzen. Als Vollduplex-Kommunikationsprotokoll kann WebSocket eine bidirektionale Datenübertragung in Echtzeit mit dem Server durchführen. In Kombination mit JavaScript kann ein elektronisches Online-Signatursystem implementiert werden. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein einfaches Online-Programm entwickeln

Tiefer Einblick: Single-Threaded-Funktionen in der Go-Sprache Tiefer Einblick: Single-Threaded-Funktionen in der Go-Sprache Mar 15, 2024 pm 02:09 PM

Als moderne Programmiersprache wurde die Go-Sprache in den letzten Jahren aufgrund ihrer Einfachheit und Effizienz von immer mehr Entwicklern geliebt und bevorzugt. Eines der einzigartigen Merkmale ist seine Single-Threaded-Natur. In herkömmlichen Multithread-Programmiersprachen müssen Entwickler die Synchronisierung und den gegenseitigen Ausschluss zwischen Threads normalerweise manuell verwalten. Mit der einzigartigen Coroutine (Goroutine) und dem Kommunikationsmechanismus (Kanal) kann die gleichzeitige Programmierung bequem und effizient implementiert werden. 1. Goroutine und Single-Thread: Go-Sprache

Ein tiefer Einblick in gängige Sonderzeichen unter Linux Ein tiefer Einblick in gängige Sonderzeichen unter Linux Mar 14, 2024 pm 02:54 PM

Als häufig verwendetes Open-Source-Betriebssystem verfügt das Linux-Betriebssystem über starke Anpassbarkeit und Flexibilität. Bei der Nutzung von Linux-Systemen stoßen wir häufig auf die Verarbeitung verschiedener Sonderzeichen. Diese Sonderzeichen haben in der Befehlszeile eine besondere Bedeutung und können viele erweiterte Funktionen implementieren. Dieser Artikel befasst sich mit den gängigen Sonderzeichen unter Linux und stellt deren Verwendung anhand konkreter Codebeispiele im Detail vor. Platzhalter: Platzhalter sind Sonderzeichen, die zum Zuordnen von Dateinamen verwendet werden. Zu den üblichen Platzhaltern gehören *,?, [] usw. Hier sind mehrere

See all articles