function Animal(){}
Animal.prototype={
name:"animal",
toString:function(){
console.log(this.name);
}
};
Animal.prototype.constructor=Animal;
function Dog(){}
//用于打破对象的引用传递,防止修改子类属性对父类产生影响
var F=function(){}
F.prototype=Animal.prototype
Dog.prototype=new F();
Dog.prototype.constructor=Dog;
Dog.prototype.name="dog";
var d=new Dog();
d.toString(); //打印子类name dog
var a=new Animal();
a.toString();//打印父类name animal

上面代码通过实例化子类和父类,分别调用toString()实现了继承的关系。

这个时候有这样的需求;不实例化父类,直接通过子类完完整整的调用父类的方法或属性。

实现代码如下

function Animal(){}
Animal.prototype={
name:"animal",
toString:function(){
console.log(this.name);
}
};
Animal.prototype.constructor=Animal;
function Dog(){}
//用于打破对象的引用传递,防止修改子类属性对父类产生影响
var F=function(){}
F.prototype=Animal.prototype
Dog.prototype=new F();
Dog.prototype.constructor=Dog;
Dog.prototype.name="dog";
Dog.uber=Animal.prototype;
var d=new Dog();
d.toString(); //打印子类name dog
//var a=new Animal();
//a.toString();//打印父类name animal /**
* Dog.prototype.constructor===d.constructor
*/
Dog.prototype.constructor.uber.toString();
//打印animal(方式1)
d.constructor.uber.toString(); //打印animal(方式2)

通过面简单的三行红色代码就实现了子类访问父类成员的需求。

本来想模仿java的使用super访问父类,后来想想super是javascript的关键字。

javascript中uber实现子类访问父类成员的更多相关文章

  1. Java子类访问父类的私有成员变量

    /**子类会继承父类所有的属性和方法. * 但是根据不同的权限标识符,子类不可见父类的私有变量,但可以通过父类的公共方法访问私有变量 * 所以对于重名变量,子类和父类都各有一份. * 对于子类和父类中 ...

  2. 转:C++:从子类访问父类的私有函数

    众所周知,c和c++的数组都是不安全的,因为无论c还是c++都不提供数组边界检查功能,这使得数组溢出成为可能.从某个意义上说,c和c++是一种缺少监督的语言,然而这也正是其魅力所在.c++给予程序员更 ...

  3. super关键字访问父类成员

    1.super只能出现在子类的方法和构造方法中: 2.super调用构造方法时只能是第一句: 3.super不能访问父类的private成员.

  4. c++子类和父类成员函数重名

    子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数. 子类和父类只要函数名相同,没有virtual关键字,则子类的对象没有办法调用到父类的同名函数,父类的同名 ...

  5. public、potected 、private继承下的子类对父类成员的访问情况

    #include<iostream> #include<string> using namespace std; class parent{ protected: int m_ ...

  6. 【C++】子类访问父类typedef的问题

    class A { public: typedef int* pointer; }; class B :public A { public: pointer b; }; 这段代码运行没有问题,子类继承 ...

  7. 子类覆写的变量被private隐藏,强制转换方式通过子类访问父类的被覆写变量:

    import static java.lang.System.*; public class SuperParent{ public static void main(String[] args){ ...

  8. JavaScript中的数据属性和访问器属性

    在学习JavaScript原型(prototype)和原型链(prototype chain)知识的时候,发现数据属性和访问器属性的重要性,通过不断的查找相关知识,浅显理解如下,若有差错,希望不吝赐教 ...

  9. JavaScript中Get和Set访问器的实现

    我们常用的实现方法可能是这样的: function Field(val){ var value = val; this.getValue =function(){ return value; }; t ...

随机推荐

  1. 01_jQuery初识

    1.为什么要学习jQuery?做同样的事情,jQuery写起来极其简练(write less , do more) 2.jQuery是什么?jQuery相当于Python的第三方模块,原生JS DOM ...

  2. mybatis和java一些知识记录

    <where> <if test="userName != null and userName != ''"> and user_name like con ...

  3. wpf布局控件总结

    首先要认识到wpf所有的布局控件都继承自Panel类,Panel类又继承自其他类.继承关系如下: 一.StackPanel布局面板 1.该面板在单行或者单列中以堆栈的形式放置其子元素. 默认情况下,S ...

  4. Mysql 增加rownum

    Mysql 增加rownum 实现(极度推荐) mysql本身不像oracle那样使用 rownum 来显示行号的功能.但是可以使用设置变量的方式来实现这一功能. mysql使用 @ 定义用户变量, ...

  5. File- Linux必学的60个命令

    1.作用 件内容判断文件类型,使用权限是所有用户. 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出. -z ...

  6. js实现事件监听与阻止监听传播

    监听事件: 使用attachEvent(用于IE)和addEventListener(用于谷歌.火狐)时则可以实现多个事件处理函数的调用 1.下面都是dom对象的方法,可以实现一种事件绑定多个事件处理 ...

  7. angularjs中动态为audio绑定src问题总结

    先上代码 <div class="block_area block_audio" ng-show="model.url"> <audio co ...

  8. jeecms v9导入myeclipse 2015 ehcache.xml报错问题

    1.找不到ehcache.xml文件问题 cache-context.xml <property name="configLocation"> <value> ...

  9. android服务的bindService/startService

    1,高版本android已经不允许只通过action来bindService/startService,可以通过: intent.setPackage("XXXX"); 来指定服务 ...

  10. 解决 Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'

    If you are looking for the solution in Android Studio : Right click on your app Open Module Settings ...