javascript对象(3)
这个对象,不是那个对象,第三哦!
对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式:
1、冒用继承
//创建了孙悟空构造函数
function Sun(change,weapon,gf){
this.change = change;
this.weapon = weapon;
this.gf = gf;
this.bianshen = function(){
alert("吃俺老孙一棒");
}
} //给原型上添加一个方法
/*Sun.prototype.bianshen = function(){
alert("吃俺老孙一棒");
}*/ //创建猪八戒构造函数
function Zhubajie(name){//name是猪八戒自己单独有的属性
this.name = name;
//创建一个属性,属性值是Sun构造函数
this.sun = Sun;
this.sun("仙桃","金箍棒","紫霞仙子");
delete this.sun;//删除掉这个属性
} var zbj = new Zhubajie("猪八戒"); zbj.bianshen();//方法可以使用
alert(zbj.weapon); //zbj 和Sun 不是同一类型的
alert(zbj instanceof Sun); //false
这就是第一种继承方式。
【注意】冒用继承缺点:不能使用原型上的方法和属性 优点:可以传递参数;
2、原型继承
function Dan(car,money,home){
this.car = car;
this.money = money;
this.home = home;
}
//发方法声明在原型对象上
Dan.prototype.shoping = function (){
alert("买买买");
}
Dan.prototype.money = "5亿";
//这个实例化对象是Dan的儿子,可以使用Dan的属性和方法
var son = new Dan("劳斯莱斯幻影","10亿","四合院");
//创建一个乞丐构造函数
function S(name){
this.name = name;
}
//让乞丐继承富豪的属性和方法
//把乞丐的构造函数原型修改成干爹的原型,这样,乞丐实例化对象就可以使用干爹的属性和方法。(两种方法)
// S.prototype = Dan.prototype;
S.prototype = new Dan();
//把S的原型对象constructor指针指回自己,否则会出问题
S.prototype.constructor = S;
var s = new S("苏乞儿");
s.shoping();
alert(s.money);
//判断s的爸爸是不是 Dan
alert(s instanceof Dan);//true s 和 Dan不是一个东西
这种继承方式就是将新建的父类对象赋给子类构造函数的原型。
【注意】原型链继承缺点:不能传递参数 优点:可以使用原型 上的方法 ;
3、混合继承
function Person(name,id,sex){
this.name = name;
this.id = id;
this.sex = sex;
this.think = function(ss){
alert(ss);
}
}
Person.prototype.eat = function(){
alert("呵呵");
}
function XM(name,id,sex,clas){
this.clas = clas;
//call方法是用来继承用的。你想继承那个对性的属性,就要把属性传递进来;
// Person.call(this,name,id,sex);
//apply和call功能相同;
//区别 call方法 参数要一个一个传, apply方法可以传参数数组
//优先选择apply方法使用
Person.apply(this,arguments);
}
//原型链继承 + call/apply 叫混合继承
XM.prototype = new Person();
XM.prototype.constructor = XM;
var xiaoming = new XM("小明","12312112112332","男","一年级二班");
alert(xiaoming.name);//打印小明名字属性
xiaoming.think("坎坎坷坷");
//现在有一个需要,让小明可以使用Person对象原型上的方法
xiaoming.eat();
第三种方式就是 冒用继承 + 原型继承 ,既能继承父类的原型,完成复用,又能向父类传递参数。
javascript所有的内容就到这里了,希望可以帮到大家!!!!!!
javascript对象(3)的更多相关文章
- json与JavaScript对象互换
1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...
- javaScript对象-基本包装类型的详解
本人按书上的内容大致地把javaScript对象划分成“引用类型”.“基本包装类型”和“内置对象”三块内容. 我们这篇先了解下基本包装类型的详细用法吧! 一.我们先解下相关概念: 1.引用类型的值(对 ...
- 如何理解javaScript对象?
在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等. 在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友). 夫妻间呢?都会说我的爱人是谁谁谁,现在我们 ...
- 简述JavaScript对象、数组对象与类数组对象
问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...
- 深入理解javascript对象系列第二篇——属性操作
× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...
- Javascript对象的方法赋值
Javascript对象编程学习中,一直不能很好的掌握对象的属性(property)和方法(method).今天在写代码过程中,又犯了一个低级错误. <!DOCTYPE html> < ...
- web前端学习(二) javascript对象和原型继承
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...
- 如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...
- JavaScript 对象、DOM对象、jquery对象的区别、转换详解
一.JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性: [javascrip ...
- 关于javascript对象的简单记忆法
关于javascript对象方法的简单记忆法(个人整理) string对象: 大号小号闪烁加链接./big/small/blink/link/ 粗体斜体打字删除线./bold/italics/fixe ...
随机推荐
- iOS苹果和微信中音频和视频实现自动播放的方法
通过下面的方式可以解决,在iPhone手机微信中正常自动播放. 必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效,猜测微信接口做了处理~ <audio prel ...
- 关于 SimpleMembership 中 CreateDate 的问题
使用 WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.UserName, model.Password, ...
- undefined reference to symbol ‘_ZN2cv6String10deallocateEv
使用qt编译Caffe时出现如下错误: undefined reference to symbol '_ZN2cv6String10deallocateEv' error adding symbols ...
- CentOS 中安装nginx
Centos6.8 yum 安装 nginx 1:使用yum安装nginx,安装nginx库 [root@hadoop110 //]# rpm -Uvh http://nginx.org/pack ...
- FPGA基础学习(3) -- 跨时钟域处理方法
文章主要是基于学习后的总结. 1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域.假如设计有两个输入时钟,如图1所示,一个时钟给接口1使 ...
- UVA - 10589 构造最优化函数 DP好题
题意:给定一个图,节点可以放灯,要求用最少的灯覆盖所有的边(每盏灯能覆盖该节点邻接的边),满足条件的同时求该前提下尽量多的被两盏灯照亮的边数 条件二转化为求尽量少的被一盏灯照亮的边数,两个条件都是求m ...
- BZOJ - 2457 思維+貪心
//為什麼我的Chrome OS更新後變成強制繁體了?? 題目要求使用最少的雙端隊列來維護一個單調非降序列 先來看下規律 首先,val肯定是單調非降的,在相等val範圍內的id可以xjb亂放不影響 其 ...
- sql server优化思路
查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化 ...
- ansible 命令详解{图片详解}
本文内容来至于http://www.zsythink.net 文件操作模块 命令操作模块 cron 包管理模块
- DB Intro - MongoDB Relations
https://www.quackit.com/mongodb/tutorial/mongodb_create_a_relationship.cfm