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+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
Javascript缓存API
Jun 14 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
用vscode开发vue应用的方法步骤
May 06 Javascript
JS求1到任意数之间的所有质数的方法详解
May 20 Javascript
微信接入之获取用户头像的方法步骤
Sep 23 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
vue 数据操作相关总结
Dec 17 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
PHP生成HTML静态页面实例代码
2008/08/31 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
快速查询Python文档方法分享
2017/12/27 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
python for 循环获取index索引的方法
2019/02/01 Python
python识别验证码图片实例详解
2020/02/17 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
技术人员面试提纲
2013/11/28 职场文书
公司中秋节活动方案
2014/02/12 职场文书
高考励志标语
2014/06/05 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers