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 相关文章推荐
JQuery入门——事件切换之toggle()方法应用介绍
Feb 05 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
对象转换为原始值的实现方法
Jun 06 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
极简主义法编写JavaScript类
Nov 02 Javascript
微信小程序日历效果
Dec 29 Javascript
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
记录一次开发微信网页分享的步骤
May 07 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP培训要多少钱
2017/06/06 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
关于event.cancelBubble和event.stopPropagation()的区别介绍
2011/12/11 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
对numpy数据写入文件的方法讲解
2018/07/09 Python
python3多线程知识点总结
2019/09/26 Python
Pycharm调试程序技巧小结
2020/08/08 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
村干部培训班主持词
2014/03/28 职场文书
机关出纳岗位职责
2014/04/03 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
react国际化react-intl的使用
2021/05/06 Javascript