Im Folgenden sind einige Probleme mit dem neuen Betreiber aufgeführt. In diesem Artikel werden die relevanten Probleme erläutert.
Schauen Sie sich zuerst die Ergebnisse an
function Person (name, age, job) { this.name = name this.age = age this.job = job } Person.prototype.sayName = function () { console.log(this.name) }// 使用new操作符var p1 = new Person('laoyang', '22', 'coding') p1 instanceof Person // true// 不使用new 操作符var p2 = new Object() Person.call(p2, 'xiaoyang', '2', 'test') p2.__proto__ = Person.prototype p2 instanceof Person // true
Vergleichen Sie die Unterschiede
// 使用new 操作符直接创建实例var p1 = new Person('laoyang', '22', 'coding') // 不使用new 操作符var p2 = new Object() // p2 创建成为一个对象 这时p2的原型是ObjectPerson.call(p2, 'xiaoyang', '2', 'test') // Person构造函数在 p2 对象的环境内执行 这时p2已经是一个具有Person属性的实例了,但原型是Objectp2.__proto__ = Person.prototype // 最后把Person.prototype 赋值给p2.__proto__,让p2的原型指向Person.prototype
Schritte zum Erstellen einer Instanz ohne Verwendung des neuen Operators:
Person. call(p2, 'xiaoyang', '2', 'test') // d
Dieser Artikel zeigt Probleme im Zusammenhang mit dem neuen Operator. Weitere verwandte Probleme finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Erklärung häufiger Probleme mit JS-Funktionen
Erklärung JavaScript-bezogener Funktionen
Erklärung zu JQuery-DOM und Ereignissen
Das obige ist der detaillierte Inhalt vonErläuterung zu Problemen im Zusammenhang mit dem neuen Betreiber. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!