Dieser Artikel bietet Ihnen eine Einführung in die Verwendung von Object.create() in JavaScript. Ich hoffe, dass er Ihnen als Referenz dienen wird. helfen.
Das von Object.create(null) erstellte Objekt ist ein leeres Objekt, das die Eigenschaften oder Methoden der Object.prototype-Prototypkette nicht erbt.
Zum Beispiel: toString(), hasOwnProperty ( ) und andere Methoden
参数 | 说明 |
---|---|
obj | 创建对象的原型,表示要继承的对象 |
propertiesObject(可选 ) | 也是一个对象,用于对新创建的对象进行初始化 |
Werfen wir einen Blick auf die zugrunde liegende Implementierung
Object.create = function (o) { var F = function () {}; F.prototype = o; return new F(); };
Sehen wir uns die spezifische Anwendung an:
//创建一个Obj对象 var Obj ={ name:'mini', age:3, show:function () { console.log(this.name +" is " +this.age); } } //MyObj 继承obj, prototype指向Obj var MyObj = Object.create(Obj,{ like:{ value:"fish", // 初始化赋值 writable:true, // 是否是可改写的 configurable:true, // 是否能够删除,是否能够被修改 enumerable:true //是否可以用for in 进行枚举 }, hate:{ configurable:true, get:function () { console.log(111); return "mouse" }, // get对象hate属性时触发的方法 set:function (value) { // set对象hate属性时触发的方法 console.log(value,2222); return value; } } });
Anwendung der Object.create-Vererbung:
var A = function () { }; A.prototype.sayName=function () { console.log('a'); } // B的实例继承了A的属性 var B = function () { }; B.prototype = Object.create(A.prototype); var b = new B(); b.sayName(); // a
Wichtiger Punkt: Im Vergleich zur Vererbung des Konstruktors realisiert die Object.create-Vererbung die perfekte Trennung der Prototypen von A und B. Beide Parteien werden sich nicht gegenseitig beeinflussen. Dies ist das Highlight von Object.create
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von Object.create() in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!