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 相关文章推荐
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
父节点获取子节点的字符串示例代码
Feb 26 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
javascript闭包(Closure)用法实例简析
Nov 30 Javascript
浅析jQuery 3.0中的Data
Jun 14 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 Javascript
JavaScript代码执行的先后顺序问题
Oct 29 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
js使用cookie实现记住用户名功能示例
Jun 13 Javascript
使用JS监听键盘按下事件(keydown event)
Nov 07 Javascript
JavaScript实现轮播图特效
Apr 10 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+js实现异步图片上传实例分享
2014/06/02 PHP
php实现的xml操作类
2016/01/15 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
详解Python异常处理中的Finally else的功能
2017/12/29 Python
使用python编写监听端
2018/04/12 Python
python实现定时提取实时日志程序
2018/06/22 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python内存映射文件读写方式
2020/04/24 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
Python Merge函数原理及用法解析
2020/09/16 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
房地产促销活动方案
2014/03/01 职场文书
求职个人评价范文
2014/04/09 职场文书
社区戒毒工作方案
2014/06/04 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
董事长助理岗位职责
2015/02/11 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
八年级语文教学反思
2016/03/03 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python