JavaScript中子对象访问父对象的方式详解

 更新时间:2016年09月01日 10:12:39   作者:秋天的风,夏天的雨  
js中虽然没有传统面向对象的编程语言里子类访问父类的特殊语法,但是我们可以根据需要造一个,接下来本文给大家分享在JavaScript中子对象访问父对象的方式,需要的朋友可以参考下

在传统面向对象的编程语言里,都会提供一种子类访问父类的特殊语法,引文我们在实现子类方法往往需要父类方法的额外辅助。在这种情况下,子类通常会调用父类中的同名方法,最终以便完成工作。

javascript虽然没有类似上述的特殊语法,但我们可以造一个啊!

function her(){};
her.prototype.name = 'Anna';
her.prototype.toString = function(){
var const = this.constructor;
return const.uber ? this.const.uber.toString() + ',' + this.name : this.name;
}
function his(){};
var F = function(){};
F.prototype = her.prototype;
his.prototype = new F();
his.prototype.constructor = her;
his.uber = her.prototype;
his.prototype.name ='Jock';
function child(width, height){
this.width = width;
this.height = height;
}
var F = function(){};
F.prototype = his.prototype;
child.prototype = new F();
child.prototype.constructor = child;
child.uber = his.prototype;
child.prototype.name = 'Los';
child.prototype.getArea = function(){
return this.width * this.height;
}

我们在构建关系的过程中,我们引入了一个uber属性,并令其指向父及对象。

在这里,我们更新了以下内容:

  1. 将usber属性设置成指向父对象的引用;

  2. 对toString()方法进行了更新;

之前的toString()方法只是简单的返回this.name,现在我们给他添加了额外的任务,就是检查this.constructor.usber属性,如果存在就调用该属性的toString()方法。

由于this.constructor本身是一个函数,而this.constructo.usber是指向当前对象父级原型的引用,所以我们调用child实体的toString()方法时,其原型链上的toString()方法都会被调用。

var my = child(1,2);
my.toString() // Anna, Jock, Los

以上所述是小编给大家介绍的JavaScript中子对象访问父对象的方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Chrome插件开发系列一:弹窗终结者开发实战

    Chrome插件开发系列一:弹窗终结者开发实战

    从这一节开始,我们将从零开始打造我们的chrome插件工具库,第一节我们将讲一下插件开发的基础知识并构建一个简单但却很实用的插件,在构建之前,我们先简单的了解一下插件以及插件开发的基础知识
    2020-10-10
  • 深入了解最常用的JavaScript 事件

    深入了解最常用的JavaScript 事件

    这篇文章主要为大家介绍了JavaScript 事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • js格式化输入框内金额、银行卡号

    js格式化输入框内金额、银行卡号

    这篇文章主要介绍了js格式化输入框内金额、银行卡号,采用“keyup”事件处理格式化,每4位数一组中间空格隔开,如何格式化输入框内金额、银行卡号,需要了解的朋友可以参考一下
    2016-02-02
  • js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码

    js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码

    这篇文章主要介绍了js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码,需要的朋友可以参考下
    2016-04-04
  • 信息滚动效果的实例讲解

    信息滚动效果的实例讲解

    下面小编就为大家带来一篇信息滚动效果的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • JS中的6种打断点的方式实例总结

    JS中的6种打断点的方式实例总结

    断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了,下面这篇文章主要给大家介绍了关于JS中6种打断点方式的相关资料,需要的朋友可以参考下
    2022-04-04
  • 基于JS实现动态跟随特效的示例代码

    基于JS实现动态跟随特效的示例代码

    这篇文章主要介绍了如何利用JavaScript实现动态跟随特效,文中的示例代码讲解详细,对我们学习JS有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-06-06
  • 深入浅析JavaScript中prototype和proto的关系

    深入浅析JavaScript中prototype和proto的关系

    prototype,每一个函数对象都有一个显示的prototype属性,而proto每个对象都有一个名为_proto_内部隐藏属性。本文给大家介绍JavaScript中prototype和proto的关系,需要的朋友参考下
    2015-11-11
  • JavaScript 中的运算符和表达式介绍

    JavaScript 中的运算符和表达式介绍

    这篇文章主要介绍了JavaScript 中的运算符和表达式介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 微信小程序之数据缓存的实例详解

    微信小程序之数据缓存的实例详解

    这篇文章主要介绍了微信小程序之数据缓存的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下
    2017-09-09

最新评论