JS面对对象,继承父类给子类扩展属性

hi凹凸曼叔叔 hi凹凸曼叔叔 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


prototype.js中有下面三个扩展,根据这三个扩展可以模拟类,创建对象。

var Class = {
create: function(){
return function(){
this.initialize.apply(this,arguments);
};
}
};

var Extend = function(description, source){
for (var property in source){
description[property] = source[property];
}
return description;
};
Object.prototype.extend = function(obj){
return Extend.apply(this,[this,obj]);
};



//创建一个父类Person,子类Kid,子类Kid继承Person
var Person = Class.create();
Person.prototype = {
//构造函数
initialize:function(name,age){
this.name = name;
this.age = age;
},
//方法
say: function(){
//.....
}
}
var Kid = Class.create();
//继承person
Kid.prototype = (new Person()).extend({
//在这里可以给子类Kid扩展其他方法,也就是父类中没用的方法,比如下面的learn方法

learn:function(){
//.........
}
});





var anni = Kid("anna", 12);
anni.height = "1.5m";
anni.sex = "famale";
//此为实例对象后 给对象 扩展属性

我的问题是:不实例化对象 如何给子类扩展属性。。。
我想得到的办法就是在
exten({
})
里面重写构造函数,覆盖父类中的构造函数。。。

可能有的人还是不明白我是什么意思。往下看:
在java中

class Shape {
protected String name;
public Shape(String name) {
this.name = name;
}
}
class Circle extends Shape {
//Circle继承了Shape
//并扩展了自己的属性和方法
public double radius;
public Circle(double radius) {
this.radius = radius;
}
}

我想要的就是上面java中的这个效果 :子类继承父类的时候就可以扩展自己的属性

愿意交流的同学尽量贴代码。。。^-^
...全文

相关推荐

JS在子类中用Object.getPrototypeOf去调用父类方法

JS在子类中用Object.getPrototypeOf去调用父类方法,是一个很好的js模板

wangxian22

JavaScript子类用Object.getPrototypeOf去调用父类方法解析

主要介绍了JavaScript子类用Object.getPrototypeOf去调用父类方法。需要的朋友可以过来参考下,希望对大家有所帮助

weixin_38708461

js javascript zInherit 对象 继承

js javascript zInherit 对象 继承

schzh1234

javascript继承之为什么要继承

Quiz1 Javascript真的需要类(Class)么? 我们首先先看下其他有类(Class)的面向对象语言(如:Java)的一些特性。 父类与子类 父类(Superclass)和子类(Subclass),并不是为了解决父亲与儿子的问题,而是为了解决类的包含关系的,我们用Sub表示“子类”,用Sup表示“父类”,则有:   Sub Sup 这是有区别的,例如通常我们能够将子类当成父类来使用,但认人的时候我们并不能把儿子当成父亲。 或者可以这么说,父类和子类不是为了解决类间存在相同方法或者属性的。 举个例子 有人喜欢这样做: 我们需要一些动物的类,以便在屏幕上创建一些移动的动物,但移动的动物

weixin_38609693

Javascript简单实现面向对象编程继承实例代码

本文讲述了Javascript简单实现面向对象编程继承实例代码。分享给大家供大家参考,具体如下: 面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javascript确实是一种弱类型的面向对象的语言,这里给出一个简单的类继承的代码 <script type

weixin_38691194
评论 6
收藏 已收藏
分享
返回顶部
hi凹凸曼叔叔
JavaScript 87,983 成员 224,681 内容