javascript中实现继承的几种方式

javascript中实现继承的几种方式

1、借用构造函数实现继承

function Parent1(){
    this.name = "parent1"
}
function Child1(){
    Parent1.call(this);
    this.type = "child1";
}

缺点:Child1无法继承Parent1的原型对象,并没有真正的实现继承(部分继承)

2、借用原型链实现继承

function Parent2(){
    this.name = "parent2";
    this.play = [1,2,3];
}
function Child2(){
    this.type = "child2";
}
Child2.prototype = new Parent2();

缺点:原型对象的属性是共享的

3、组合式继承

function Parent3(){
    this.name = "parent3";
    this.play = [1,2,3];
}
function Child3(){
    Parent3.call(this);
    this.type = "child3";
}
Child3.prototype = Object.create(Parent3.prototype);
Child3.prototype.constructor = Child3

原文地址:https://www.cnblogs.com/dgqboke/p/9661388.html

时间: 2024-10-16 18:28:49

javascript中实现继承的几种方式的相关文章

javascript中定义事件的三种方式

在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使用addEvenListener()方法 三种方法的比较 (1)在第二.三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以. (2)首选第二.三种,第一种不利于将内容与事件分离,也不能使用event对象的相关内容. 一些语法细节 (1)在第一种方法中,onclick大小写

在javaScript中检测数据类型的几种方式

在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅. 一.typeof  检测 typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型.它的返回值是一个字符串,该字符串说明运算数的类型. 1 // var arr = { name:"john"

JavaScript中定义对象的四种方式 2012-5-10 15:19 阅读(0)

最近在阅读< JavaScript 高级程序设计>,未免遗忘读过的内容,就打算以博客的形式做些读书笔记.今天介绍的是 JavaScript 中的四种定义对象的方法,除了这四种方法,还有工厂方法来定义对象,但考虑到其简单性及非正规性,这里就不做介绍.和 Java 这样的面向对象语言相比, JavaScript 更像是函数式语言,其并没有类的概念,盖之以对象定义的概念,而具体创建的对象叫做对象的实例. 1)构造函数方式定义对象. 这种方式是在构造函数内定义属性和方法.这里举个简单的例子: func

JavaScript中定义对象的四种方式

最近在阅读< JavaScript 高级程序设计>,未免遗忘读过的内容,就打算以博客的形式做些读书笔记.今天介绍的是 JavaScript 中的四种定义对象的方法,除了这四种方法,还有工厂方法来定义对象,但考虑到其简单性及非正规性,这里就不做介绍.和 Java 这样的面向对象语言相比, JavaScript 更像是函数式语言,其并没有类的概念,盖之以对象定义的概念,而具体创建的对象叫做对象的实例.     1)构造函数方式定义对象. 这种方式是在构造函数内定义属性和方法.这里举个简单的例子:

JavaScript中清空数组的三种方式

方式1,splice 1 2 3 var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 Array[0],空数组,即被清空了 方式2,length赋值为0 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值.如 1 2 int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过.而JS中则可以,且将数组清空了, 1 2 3 var a

JavaScript中检测数组的几种方式

检测一个对象是否为数组的方式有: Array.isArray()         // true或false(es5) toString.call([]);      // [object Array] arr.constructor;      // Array() instanceof Array   // true或false 兼容性写法: if(typeof Array.isArray==="undefined"){ Array.isArray = function(arg){

js中原型继承的三种方式

js 实现继承的几种方式

//js中实现继承的几种方式 //实现继承首先要有一个父类,先创造一个动物的父类 function Animal(name){ this.name = name; this.shoot = function(){ console.log("yelp"); } } //动物的原型 Animal.prototype.eat = function(food){ console.log(name+"吃"+food); } //1.实例继承 var dog = new Ani

javascript 中各种继承方式的优缺点 (转)

javascript中实现继承的方式有很多种,一般都是通过原型链和构造函数来实现.下面对各种实现方式进行分析,总结各自的优缺点. 一 原型继承 let Super = functioin(name) { this.name = name; this.setName = (newName) => { this.name = name; }; this.getName = () => { return this.name; } } let Sub = function(sex) { this.se