文档章节

js继承的几种方式

C
 Carry-YI
发布于 2017/04/22 12:24
字数 275
阅读 3
收藏 0

1、原型继承

"use strict";
/*
* 每一个构造函数都有一个原型对象
* 每一个原型对象都包含一个指向构造函数的指针
* 每一个对象都包含一个指针指向原型对象
* 原型对象==实例对象
* 原型对象就包含一个指针指向原型对象
* 结论:层次递进,就构成了原型链
 */
function GrandFather(){
    this.name = "张三";
}

GrandFather.prototype.getName = function () {
    return this.name;
}

function Parent() {

}

Parent.prototype = new GrandFather();

function Child(){

}

Child.prototype = new Parent();

var child = new Child();
alert(child.getName());

2、构造函数继承

"use strict";
//父子关系,子类的构造函数里调用父类的构造函数
function Parent() {
    this.name = "李四";
    this.age = 12;
}

function Child() {
    Parent.call(this);
}

var child = new Child();
alert(child.name);
alert(child.age);

3、构造函数和原型组合继承

"use strict";
//组合继承(将构造函数和原型链结合在一起)
function Parent() {
    this.name = "李四";
    this.age = 12;
}

Parent.prototype.getName = function(){
    alert(this.name);
}

function Child() {
    Parent.call(this);
}

Child.prototype = new Parent();

var child = new Child();
alert(child.getName());

4、寄生式继承

"use strict";
//寄生式继承
function CreateOther(original){
    var clone = Object(original);
    clone.getName = function () {
        alert(this.name);
    }
    return clone;
}

var person = {
    name:"张三",
    age:"11"
}

var otherPerson = CreateOther(person);
person.getName();

 

© 著作权归作者所有

共有 人打赏支持
C
粉丝 0
博文 6
码字总数 1826
作品 0
深圳
程序员
JavaScript继承详解(四)

文章截图 - 更好的排版 在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现 - Classical Inheritance in JavaScript。 Crockford是JavaScript开发社区最知名的权威,是JSO...

solu
2010/12/25
0
0
React Native iOS混合开发实战教程

在做RN开发的时候通常离不了JS 和Native之间的通信,比如:初始化RN时Native向JS传递数据,JS调用Native的相册选择图片,JS调用Native的模块进行一些复杂的计算,Native将一些数据(GPS信息,...

JiaPengHui
09/15
0
0
深入浅出 JavaScript 中的 this

JavaScript 是一种脚本语言,因此被很多人认为是简单易学的。然而情况恰恰相反,JavaScript 支持函数式编程、闭包、基于原型的继承等高级功能。本文仅采撷其中的一例:JavaScript 中的 this...

i33
2012/10/25
0
0
JavaScript中的百变大咖~this

原文链接:http://www.jeffjade.com/2015/08/03/2015-08-03-javascript-this/ JavaScript作为一种脚本语言身份的存在,因此被很多人认为是简单易学的。然而情况恰恰相反,JavaScript支持函数...

jeffjade
2015/08/07
0
0
深入浅出 JavaScript 中的 this

在 Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象。一般在编译期确定下来,或称为编译期绑定。而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这就...

idea_biu
2012/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于网站恶意注册会员

网站发生恶意注册会员,有图形验证码 ,和短信验证码 但是还是有大量恶意注册: session 和 cookie都是可以随便伪造的。 验证码有打码平台。 短信验证有短信验证平台。 IP限制有虚拟拨号/VP...

妖尾巴
20分钟前
0
0
awk命令用法介绍

10月18日任务 9.6/9.7 awk 9.6/9.7 awk命令 head -n2 test.txt|awk -F ':' '{print $1}' head -n2 test.txt|awk -F ':' '{print $0}' awk -F ':' '{print $1"#"$2"#"$3"#"$4}' awk '/oo/ tes......

zgxlinux
21分钟前
0
0
循环

我今天学会了用for循环找出一个数组中的最大值,代码: var rets = [2,4,5,6,7,9,10,15];function arrayMax(arrs) {var max = arrs[0];for(var i = 1,ilen = arrs.length; i < ilen...

墨冥
27分钟前
0
0
10《Java核心技术》之如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

一、提出问题 之前我们一起讨论过两讲 Java 集合框架的典型容器类,它们绝大部分都不是线程安全的,仅有的线程安全实现,比如 Vector、Stack,在性能方面也远不尽如人意。幸好 Java 语言提供...

飞鱼说编程
30分钟前
0
0
SpringBoot 整合 kafka 实现组订阅模式

SpringBoot 整合 kafka 实现组订阅模式: 工程结构图 消息生产者pom.xml配置 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xml......

泉天下
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部