美文网首页
原型继承

原型继承

作者: coldtiger | 来源:发表于2015-10-09 11:27 被阅读31次

<code>
// 使用Proxy实现propotypal inheritance
function MultiPrototype(...prototypes){
var chain = [{}, ...prototypes]
return new Proxy(chain[0], {
get: function(target, name){
for (let obj of chain){
if (name in obj) return obj[name]
}
},
has: function(target, name){
for (let obj of chain){
if (name in obj) return true
}
return false
}
})
}
EventMonkey = MultiPrototype({
Object.create(Monkey.prototype),
Object.create(Event.prototype),
})
</code>

<code>
//ES5 实现propotypal inheritance
Object.spawn = function(parent, props){
var defs={}
for(var key in props){
if(props.hasOwnProperty(key)){
defs[key] = {
value: props[key],
enumerable: true
}
}
}
return Object.create(parent, defs)
}
function Point(x,y){
return {
x: x,
y: y
}
}
var point = Point(100, 100)
var colorPoint = Object.spawn(point, {color: "red"})
Object.create(point, {color:{value: "red"}})
</code>

<code>
//ES5 实现propotypal inheritance
Object.spawn = function(parent, props){
var sub = Object.create(parent)
for (var key in props){
if(props.hasOwnProperty(key)){
sub[key] = props[key]
}
}
return sub
}
</code>

相关文章

  • 关于继承

    继承的实现方法 属性拷贝 浅拷贝 深拷贝 原型继承 原型式继承 原型链继承 组合继承(深拷贝+优化后的原型式继承)...

  • 函数的原型对象

    什么是原型? 原型是Javascript中的继承的继承,JavaScript的继承就是基于原型的继承。 函数的原型...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • es5的部分继承以及es6的class

    一、JavaScript常用的原型继承方式 原型链继承 2,构造函数继承(对象冒充继承) 3,组合继承(原型链继承...

  • 继承

    原型链直接继承 原型链直接继承prototype 原型链继承_prototype属性 继承_构造函数绑定

  • js 继承

    4种继承方式 原型式继承给原型对象添加属性原型替换子类的原型对象替换为父类的原型对象 原型链继承 借用构造函数继承...

  • 总结JavaScript几种继承的方式及优缺点

    1. 原型继承 原型继承是比较常见一种继承方式 从上图中可以看到, 原型继承的特点: 注意:原型继承的缺点 如果...

  • 前端面试题总结【38】:javascript继承的 6 种方法

    原型链继承 借用构造函数继承 组合继承(原型+借用构造) 原型式继承 寄生式继承 寄生组合式继承 推荐: 持续更新...

  • 继承

    常见的继承方式有 原型继承、组合继承、寄生组合继承、类的继承 ①原型继承:它的原理就是,利用原型链继承父级构造函数...

  • 2019-03-25 继承

    js中通过原型来实现继承 组合继承:原型继承+借用构造函数继承

网友评论

      本文标题:原型继承

      本文链接:https://www.haomeiwen.com/subject/neuncttx.html