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


Posted in Javascript onSeptember 01, 2016

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

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中子对象访问父对象的方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript css float属性的特殊写法
Nov 13 Javascript
FF IE兼容性的修改小结
Sep 02 Javascript
javascript学习(一)构建自己的JS库
Jan 02 Javascript
jQuery客户端分页实例代码
Nov 18 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
jQuery实现不断闪烁文字的方法
May 15 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
Jun 12 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
JavaScript实现前端倒计时效果
Feb 09 Javascript
浅谈JavaScript 数据属性和访问器属性
Sep 01 #Javascript
老生常谈JavaScript 函数表达式
Sep 01 #Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 #Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 #Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Sep 01 #Javascript
深入理解jQuery3.0的domManip函数
Sep 01 #Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 #Javascript
You might like
php UTF8 文件的签名问题
2009/10/30 PHP
linux中cd命令使用详解
2015/01/08 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
windows系统下Python环境搭建教程
2017/03/28 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python一键去抖音视频水印工具
2018/09/14 Python
Django的models模型的具体使用
2019/07/15 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
金融专业毕业生推荐信
2013/11/26 职场文书
大学生社会实践评语
2014/04/25 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
营销计划书范文
2015/01/17 职场文书
护士求职简历自我评价
2015/03/10 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
Java 关于String字符串原理上的问题
2022/04/07 Java/Android