一、定义
是指原型实例指向创建对象的种类,并通过拷贝这些原型创建新的对象,是一种用来创建对象的模式,也就是创建一个对象作为另一个对象的prototype属性。
即:有一个原型实例,基于这个原型实例产生新的实例,也就是“克隆”了。
二、核心
深克隆
三、实现
-
使用 Object.create(prototype, optionalDescriptorObjects)
const languagePrototype = {
type: 'Jave',
getType: function () {
console.log(this.type + '是最好的语言')
}
}
const js = Object.create(languagePrototype, {
type: { value: 'JavaScript' }
})
js.getType() // ==> javaScript是最好的语言
-
使用 prototype
const lngPrototype = {
init: function (language) {
this.language = language || 'Java'
},
getType: function () {
console.log(`我觉得 ${this.language} 是世界上最好的语言`)
}
}
function javaScript (lng) {
function F() {}
F.prototype = lngPrototype;
const f = new F();
f.init(lng)
return f;
}
const lng = javaScript('JavaScript')
lng.getType() // ==> 我觉得 JavaScript 是世界上最好的语言