这个对象,不是那个对象,第三哦!

对象之间会存在继承,所以,来说一下他们之间存在的三种三种继承方式:

  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)的更多相关文章

  1. json与JavaScript对象互换

    1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...

  2. javaScript对象-基本包装类型的详解

    本人按书上的内容大致地把javaScript对象划分成“引用类型”.“基本包装类型”和“内置对象”三块内容. 我们这篇先了解下基本包装类型的详细用法吧! 一.我们先解下相关概念: 1.引用类型的值(对 ...

  3. 如何理解javaScript对象?

    在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等. 在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友). 夫妻间呢?都会说我的爱人是谁谁谁,现在我们 ...

  4. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  5. 深入理解javascript对象系列第二篇——属性操作

    × 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...

  6. Javascript对象的方法赋值

    Javascript对象编程学习中,一直不能很好的掌握对象的属性(property)和方法(method).今天在写代码过程中,又犯了一个低级错误. <!DOCTYPE html> < ...

  7. web前端学习(二) javascript对象和原型继承

    目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...

  8. 如何判断Javascript对象是否存在

    Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...

  9. JavaScript 对象、DOM对象、jquery对象的区别、转换详解

    一.JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性: [javascrip ...

  10. 关于javascript对象的简单记忆法

    关于javascript对象方法的简单记忆法(个人整理) string对象: 大号小号闪烁加链接./big/small/blink/link/ 粗体斜体打字删除线./bold/italics/fixe ...

随机推荐

  1. Zookeeper客户端对比选择_4

    Zookeeper客户端对比选择 本文思维导图 使用框架的好处是自带一套实用的API,但是Zookeeper虽然非常强大,但是社区却安静的可怕,版本更新较慢,下面会先从zookeeper原生API的不 ...

  2. java技术

    线程池的原理及实现:https://blog.csdn.net/hsuxu/article/details/8985931 Java高级工程师面试题总结及参考答案:https://www.cnblog ...

  3. C++_异常8-异常、类和基础

    异常.类和继承以三种方式相互关联. 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个. 其次,可以在类定义中嵌套异常类声明来组合异常. 第三,这种嵌套声明本身可以被继承,还可以作为基类. ...

  4. 洛谷 P3239 / loj 2112 [HNOI2015] 亚瑟王 题解【期望】【DP】

    ???看不懂的期望DP 题目描述 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚 ...

  5. 二分查找-数组实现(小trick)

    template<typename T> int binarySearch(T arr[], int n, T target){ , r = n-; //在[l...r]范围内寻找targ ...

  6. Codeforces - 71E 状压DP

    参考官方题解 #include<bits/stdc++.h> #define rep(i,j,k) for(register int i=j;i<=k;i++) #define rr ...

  7. Chapter 6

    6.1 顶点与输入布局 Direct3D 的顶点可以包含除空间坐标外的其他数据.如: struct Vertex1 { XMFLOAT3 Pos; XMFLOAT4 Color; }; struct ...

  8. [转] Spring Boot特性

    [From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...

  9. python 爬虫系列06--古诗文

    读书破万卷,下笔如有神 import requests import re def parse_page(url): headers = { 'USer-Agent':'user-agent: Moz ...

  10. 理解 glibc malloc:主流用户态内存分配器实现原理

    https://blog.csdn.net/maokelong95/article/details/51989081 Understanding glibc malloc 修订日志: 2017-03- ...