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模块模式分析
May 16 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
JavaScript设计模式开发中组合模式的使用教程
May 18 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
react路由配置方式详解
Aug 07 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
JS实现二维数组元素的排列组合运算简单示例
Jan 28 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
浅谈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
phpmail类发送邮件函数代码
2012/02/20 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python实现雨滴下落到地面效果
2018/06/21 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
Python 串口通信的实现
2020/09/29 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
工作会议主持词
2014/03/17 职场文书
公司应聘自荐书
2014/06/14 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
骨干教师申报材料
2014/12/17 职场文书
争做文明公民倡议书
2019/06/24 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
分享几种python 变量合并方法
2022/03/20 Python
redis protocol通信协议及使用详解
2022/07/15 Redis