Heim Web-Frontend js-Tutorial js中关于new Object时传参的一些细节分析_javascript技巧

js中关于new Object时传参的一些细节分析_javascript技巧

May 16, 2016 pm 06:09 PM
new object

1, 参数是一个对象,核心js对象(native ECMAScript object)或宿主对象(host object),那么将直接返回该对象。
其生成的对象构造器仍然是所传参数对象的构造器。这样造成的后果是虽然该对象是new Object,但其constructor不一定是Object。
复制代码 代码如下:

function Person(){this.name='jack';}
var w = new Object(window),
d = new Object(document),
p = new Object(new Person());

console.log(w.constructor); //-> Window
console.log(d.constructor); //-> HTMLDocument
console.log(p.constructor); //-> Person

2, 参数是基本类型对象,如字符串(String),数字(Number),布尔值(Boolean),将其包装成对象(转换成其对应的包装类)后返回。
复制代码 代码如下:

var s = new Object('hello'),
n = new Object(22),
b = new Object(true);

console.log(typeof s); //-> Object
console.log(typeof n); //-> Object
console.log(typeof b); //-> Object

console.log(s.constructor); //-> String
console.log(n.constructor); //-> Number
console.log(b.constructor); //-> Boolean

从以上看出,当传参数时,使用new Object生成的对象其构造器不一定指向Object,只有很巧的时候会指向Object,如
复制代码 代码如下:

var obj1 = new Object,
obj2 = {};
var o1 = new Object(obj1);
o2 = new Object(obj2);

console.log(o1.constructor); //-> Object
console.log(o2.constructor); //-> Object

以上就能明了为何jquery1.4+中以下代码返回false了
复制代码 代码如下:

function Person(){this.name='jack';}
var p = new Person();
$.isPlainObject(new Object(4)); //-> false
$.isPlainObject(new Object('hello')); //-> false
$.isPlainObject(new Object(true)); //-> false
$.isPlainObject(new Object(p)); //-> false
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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Welche Methoden gibt es zum Konvertieren von Java-Objekten in Bytes und Bytes in Objekte? Welche Methoden gibt es zum Konvertieren von Java-Objekten in Bytes und Bytes in Objekte? Apr 20, 2023 am 11:37 AM

Objekt zu Byte und Byte zu Objekt Heute erfahren wir, wie man von Objekt zu Byte und von Byte zu Objekt konvertiert. Definieren Sie zunächst eine Klasse student: packagecom.byteToObject;importjava.io.Serializable;publicclassstudentimplementsSerializable{privateintsid;privateStringname;publicintgetSid(){returnsid;}publicvoidsetSid(in

So verwenden Sie Methoden in der Java-Objektklasse So verwenden Sie Methoden in der Java-Objektklasse Apr 18, 2023 pm 06:13 PM

1. Einführung in die Object-Klasse Object ist eine von Java standardmäßig bereitgestellte Klasse. Mit Ausnahme der Object-Klasse verfügen alle Klassen in Java über Vererbungsbeziehungen. Standardmäßig erbt es die übergeordnete Klasse Object. Das heißt, Objekte aller Klassen können über die Referenz von Object empfangen werden. Beispiel: Verwenden Sie Object, um Objekte aller Klassen zu empfangen: classPerson{}classStudent{}publicclassTest{publicstaticvoidmain(String[]args){function(newPerson());function(newStudent());}public

PHP-Hinweis: Es wird versucht, die Eigenschaft einer Nicht-Objekt-Lösung abzurufen PHP-Hinweis: Es wird versucht, die Eigenschaft einer Nicht-Objekt-Lösung abzurufen Jun 24, 2023 pm 09:34 PM

PHPNotice: Tryingtogetpropertyofnon-object-Lösung Wenn Sie in PHP entwickeln, erhalten Sie möglicherweise diese Fehlermeldung: „Hinweis: Tryingtogetpropertyofnon-object“ Diese Fehlermeldung liegt normalerweise daran, dass Sie ein nicht initialisiertes Objekt verwenden, oder weil Ihr Objekt seine Referenz verloren hat in einem bestimmten Codeabschnitt und kann nicht korrekt auf die Eigenschaften zugreifen.

Java verwendet die Funktion getClass() der Object-Klasse, um die Laufzeitklasse des Objekts abzurufen Java verwendet die Funktion getClass() der Object-Klasse, um die Laufzeitklasse des Objekts abzurufen Jul 24, 2023 am 11:37 AM

Java verwendet die Funktion getClass() der Object-Klasse, um die Laufzeitklasse des Objekts abzurufen. In Java verfügt jedes Objekt über eine Klasse, die die Eigenschaften und Methoden des Objekts definiert. Wir können die Funktion getClass() verwenden, um die Laufzeitklasse eines Objekts abzurufen. Die Funktion getClass() ist eine Mitgliedsfunktion der Object-Klasse, sodass alle Java-Objekte diese Funktion aufrufen können. In diesem Artikel wird die Verwendung der getClass()-Funktion vorgestellt und einige Codebeispiele gegeben. Verwenden Sie get

Lösung für PHP-Hinweis: Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen Lösung für PHP-Hinweis: Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen Jun 22, 2023 pm 02:43 PM

Lösung für PHPHinweis: Tryingtogetpropertyofnon-object Beim Schreiben von Code in PHP kann die Fehlermeldung „Tryingtogetpropertyofnon-object“ auftreten. Diese Fehlermeldung tritt normalerweise auf, weil wir versuchen, auf eine nicht vorhandene Objekteigenschaft zuzugreifen, was zu einem Fehler im Code führt. Diese Fehlermeldung erscheint normalerweise in den folgenden Situationen: Das Objekt existiert nicht

So verwenden Sie das neue Schlüsselwort in Java So verwenden Sie das neue Schlüsselwort in Java May 03, 2023 pm 10:16 PM

1. Konzept In der Java-Sprache ist der „neue“ Ausdruck für die Erstellung einer Instanz verantwortlich. Der Konstruktor wird aufgerufen, um die Instanz zu initialisieren „Objektreferenz“, aber der Wert des neuen Ausdrucks ist eine Referenz auf das neu erstellte Objekt. 2. Zweck: Erstellen Sie ein Objekt einer neuen Klasse. 3. Arbeitsmechanismus: Allokieren Sie Speicherplatz für Objektmitglieder und geben Sie Standardwerte explizit an, führen Sie Konstruktionsmethodenberechnungen durch und geben Sie häufig Referenzwerte zurück bedeutet, neue im Speicher zu öffnen. Der Speicherplatz wird im Heap-Bereich im Speicher zugewiesen. Er wird von JVM gesteuert und verwaltet den Speicher. Hier verwenden wir die String-Klasse als Beispiel. Pu

Welche Beziehung besteht zwischen grundlegenden Datentypen und Objekten in Java? Welche Beziehung besteht zwischen grundlegenden Datentypen und Objekten in Java? May 01, 2023 pm 04:04 PM

Die Beziehung zwischen Basisdatentypen und Object Ich weiß, dass jeder gehört hat, dass Object die Basisklasse aller Typen ist, aber dieser Satz ist eigentlich nicht korrekt, da die Basisdatentypen in Java nichts mit Object zu tun haben Wenn Sie beispielsweise die Swap-Methode aufrufen, können Sie den int-Typ nicht direkt an die Swap-Methode (Objectobj) übergeben, da Object tatsächlich nichts mit dem Basisdatentyp zu tun hat. Zu diesem Zeitpunkt stellt a fest, dass unsere Typen nicht übereinstimmen. Es wird also automatisch in einen Integer-Typ umgewandelt, und die Swap-Methode kann erfolgreich aufgerufen werden

So verwenden Sie die Java-Objektklasse So verwenden Sie die Java-Objektklasse May 13, 2023 pm 05:13 PM

1. Gleichheitsmethode == Operator-Vergleichsoperator, der sowohl den Basistyp als auch den Referenztyp bestimmen kann. Wenn der Referenztyp bestimmt ist, wird festgestellt, ob die Werte gleich sind Ob die Adressen gleich sind, das heißt, ob es sich um dasselbe Objekt handelt, ist eine Methode der Objektklasse und kann nur den Referenztyp object-equals bestimmen: publicbooleanequals(Objectobj){return(this==obj); } Es ist deutlich zu erkennen, dass die Methode equal in der Objektklasse bestimmt, ob die Adresse des Objekts gleich ist (ist es dasselbe Objekt), aber andere Datentypklassen überschreiben die Methode equal, z

See all articles