美文网首页前端基础知识
JavaScript面向对象继承

JavaScript面向对象继承

作者: LorenaLu | 来源:发表于2017-04-20 20:50 被阅读0次

1、函数的调用方式

既可以使用函数名+()的形式调用,也可以使用函数名+call()的形式调用;

两种调用方式的区别:1)小括号调用:如果向小括号中传参,则该参数一定是函数所需要的参数;2)call()调用:如果向call的小括号中传参,则参数一定是一个对象,call会把所调函数中的this指针指到该参数上。

打印出window;undefind*3

call和apply的区别:功能上一模一样;在用法上:apply在传递函数所需参数时,使用数组结构传递

// hello.call(per, 'hello', '12', 34);

// hello.apply(per, ['hello', '12', 34]);

2、原型链方式实现继承

function CreateAnimal(name,age){this.name = name;this.age = age;}

function CreatePerson(name,age,gender){this.gender = gender;}

//把父级的对象当做子级的原型对象,这样父级就和子级建立了联系(通过父级对象的__proto__属性):

CreatePerson.prototype = new CreateAnimal('zhangsan',18);

//因为父级对象下的constructor属性指向的是创造它的函数,但是原型对象的constructor属性又必须指向创造它的原型的构造函数:所以要修改constructor的指针指向。

CreatePerson.prototype.constructor = CreatePerson;

var per = new CreatePerson('zhangsan',18,'man');

console.log(per);

3、组合继承

组合继承:即为使用call/apply实现对实例属性的继承,使用原型实现对原型方法的继承

function CreateAnimal(name,age){this.name = name;this.age = age;}

CreateAnimal.prototype.sayHi = function(){alert('hello';)}

function CreatePerson(name,age,gender){CreateAnimal.call(this,name,age); this.gender = gender;}

CreatePerson.prototype = new CreateAnimal();

CreatePerson.prototype.constructor = CreatePerson;

CreatePerson.prototype.eatFoot = function () {alert('吃饭了');}

var per = new CreatePerson('zhengSan', 18, 'man');

// console.log(per.gender);

per.sayHi();

相关文章

  • Web前端经典面试试题及答案2

    javascript面向对象中继承实现? 面向对象的基本特征有:封闭、继承、多态。在JavaScript中实现继承...

  • JavaScript 面向对象编程

    JavaScript 快速入门 面向对象编程创建对象构造函数忘记写new怎么办?原型继承class继承 面向对象编...

  • 《JavaScript设计模式与开发实践》之面向对象的JavaS

    面向对象的JavaScript JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式...

  • JavaScript面向对象 - 对象继承

    继承是 OO 语言中的一个最为人津津乐道的概念。许多 OO 语言都支持两种继承方式:接口继承 和 实现继承。接口继...

  • JavaScript面向对象继承

    1、函数的调用方式 既可以使用函数名+()的形式调用,也可以使用函数名+call()的形式调用; 两种调用方式的区...

  • JavaScript - 面向对象 - 继承

    这一节,主要讲解面向对象的继承,回顾上一节讲解到判断对象原型和实例对象的两种方法.废话不多说,直接上代码 ! 继承...

  • javaScript面向对象—继承

    继承的概念 继承:子类可以访问父类的所有属性和方法,并且可以对这些属性和方法进行扩展 继承的几种方式 原型链继承利...

  • 2018-06-27

    JavaScript(面向对象+原型理解+继承+作用域链和闭包+this使用总结) 一、面向对象 1、什么是面向对...

  • Javascript——面向对象程序设计和继承

    Javascript——面向对象程序设计和继承 面向对象设计模式 创建对象——单个对象 字符字变量 new 操作符...

  • 面向对象的继承

    继承--原型创建对象在面向对象的语言中,存在了三大特性—封装、继承、多态。我们前面一直说javascript是面向...

网友评论

    本文标题:JavaScript面向对象继承

    本文链接:https://www.haomeiwen.com/subject/psvhzttx.html