js原型链继承

1:Sub.prototype=new supper()

方式1: 原型链继承

1. 套路

1. 定义父类型构造函数

2. 给父类型的原型添加方法

3. 定义子类型的构造函数

4. 创建父类型的对象赋值给子类型的原型

5. 将子类型原型的构造属性设置为子类型

6. 给子类型原型添加方法

7. 创建子类型的对象: 可以调用父类型的方法

2. 关键

1. 子类型的原型为父类型的一个实例对象

-->

<script type="text/javascript">

//父类型

function Supper() {

this.supProp = ‘Supper property‘

}

Supper.prototype.showSupperProp = function () {

console.log(this.supProp)

}

//子类型

function Sub() {

this.subProp = ‘Sub property‘

}

// 子类型的原型为父类型的一个实例对象

Sub.prototype = new Supper()

// 让子类型的原型的constructor指向子类型

Sub.prototype.constructor = Sub

Sub.prototype.showSubProp = function () {

console.log(this.subProp)

}

var sub = new Sub()

sub.showSupperProp()

// sub.toString()

sub.showSubProp()

console.log(sub)  // Sub

// 子类型的原型为父类型的一个实例对象

Sub.prototype = new Supper()

// 让子类型的原型的constructor指向子类型

Sub.prototype.constructor = Sub

////////////////////////////组合继承

//组合继承

function Person(name,age) {

this.name=name

this.age=age

}

Person.prototype.Sayname = function () {

console.log(name)

}

function Student(name,age,scroce) {

Person.call(this,name,age)

this.scroce=scroce

}

//子类的prototype=父类的实例

Student.prototype=new Person()

Student.prototype.Sayscroce=function () {

console.log(this.scroce)

}

var p = new Student("ton",12,90)

p.Sayscroce()

原文地址:https://www.cnblogs.com/love-life-insist/p/9063118.html

时间: 2024-11-05 16:07:12

js原型链继承的相关文章

js原型链继承的傻瓜式详解

本文争取用最简单的语言来讲解原型链继承的OOP原理 0.如果对原型继承还没有大致了解,完全一头雾水,请先阅读 <JavaScript高级程序设计>第六章最后部分的寄生组合式继承 或者_廖雪峰js教程里面面向对象部分的原型承部分https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014344997013405abfb7f0e1904a04ba6898a384b1e925000 1

js 原型链继承

1.利用call或者apply绑定this的方式,只能继承实例属性.不能继承原型对象上的方法和属性 2.原型链继承 函数B继承函数A :图形示例如下: function A (cat) { this.cat = "猫咪" } A.prototype.myName = function () { console.log(this.dog) } function B (dog) { this.dog = 'nih' } B.prototype = new A () B.prototype.

js原型链继承及调用父类方法

function Rect(config){} Rect.prototype.area = function(){ alert("我是父方法"); } function myRect(config){ arguments.callee.prototype.constructor.prototype.area(); //子类里调用父方法area arguments.callee.prototype.area();//子类里调用重载方法area } myRect.prototype = n

js最好的继承机制:用对象冒充继承构造函数的属性,用原型链继承 prototype 对象的方法。

js最好的继承机制:用对象冒充继承构造函数的属性,用原型prototype继承对象的方法. function ClassA(sColor) { this.color = sColor; } ClassA.prototype.sayColor = function () { alert(this.color); }; function ClassB(sColor, sName) {//在 ClassB 构造函数中,用对象冒充继承 ClassA 类的 sColor 属性 ClassA.call(th

深入理解JS原型链与继承

我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天要讨论的主题,有许多人写过许多精彩的文章,但是今天我还是想把自己的理解的知识记录下来.我在学习 掌握JS原型链和继承的时候,就是看得@阮一峰老师的写的文章,觉得他写的技术类的文章都容易让理解,简明概要,又好理解.他是我学习JS路程里面一个比较佩服的导师,昨天重新看了他写的<Javascript 面向

js原型链与继承(初体验)

js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询obj的原型,我们通过判断obj的原型是否与Object.prototype相等来证明是否存在obj的原型,答案返回true,所以存在.然后我们定义一个函数foo(),任何一个函数都有它的prototype对象,即函数的原型,我们可以在函数的原型上添加任意属性,之后通过new一个实例化的对象可以共享

浅谈js原型链与继承

js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询obj的原型,我们通过判断obj的原型是否与Object.prototype相等来证明是否存在obj的原型,答案返回true,所以存在.然后我们定义一个函数foo(),任何一个函数都有它的prototype对象,即函数的原型,我们可以在函数的原型上添加任意属性,之后通过new一个实例化的对象可以共享

js 原型链和继承(转)

在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var obj = { name: "obj" }; 我们通过控制台把 obj 打印出来: 我们会发现 obj 已经有几个属性(方法)了.那么问题来了:valueOf / toString / constructor 是怎么来?我们并没有给 obj.valueOf 赋值呀. 上面这个图有点难懂,我手画

js面向对象编程/原型链/继承 —— javascript

目录 js面向对象编程 js原型链 共享方法 原型继承 js面向对象编程 js面向对象编程不同于 java 的类和对象 JavaScript 不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程. js声明的构造函数,类似于普通函数的声明,但又不同, 实例对象时,如果不写new,就是一个普通函数,它返回 undefined. 但是,如果写了new,它就变成了一个构造函数,它绑定的 this 指向新创建的对象, 并默认返回 this,也就是说,不需要在最后写return th