javascript实现继承的六种方式
/*实现继承的六种方式*/
/*1.扩展原型对象的方法实现继承*/
function Foo1(){}
//在Foo1函数上扩展一个fn1方法,由构造函数创建的对象都具有fn1这个方法
Foo1.prototype.fn1=function(){};
/*2.替换原型对象实现继承*/
function Foo2(){}
//给Foo2函数的原型对象重新赋值,注意不要忘记添加constructor属性
Foo2.prototype={
constructor:Foo2,
fn1:function(){},
fn2:function(){}
};
/*3.混入继承*/
//已知两个对象,obj2对象继承obj中的属性
obj={name:"张三",age:16};
obj2={};
for(var key in obj){
obj2[key]=obj[key];
}
//封装一个函数
function mixin(target,source){
for(var key in source){
target[key]=source[key];
}
return target;
}
//jQuery中的extend方法就使用了混入继承
/*4.混入+原型继承*/
//给Foo4.prototype混入一些新的方法
function Foo4(){}
mixin(Foo4,{fn1:function(){},fn2:function(){}});
//jQuery中的jQuery.fn.extend()就是使用了这个方法
/*5.经典继承*/
var obj5={name:"liying",age:18};
function Foo5(){};
Foo5.prototype=obj5;
//封装一个方法
function getFun(obj5){//传入已知的对象
function F(){}
F.prototype=obj5;
return new F();//将继承创建的对象返回
}
//经典继承在ES5中得到了实现,Object.create()
/*6.借用构造函数实现继承*/
function Foo6(name,age){
this.name=name;
this.age=age;
}
function NewFoo(name,age,number){
Foo6.call(this,name,age);
this.number=number;
}
//newFoo构造函数借用Foo6构造函数中的属性和方法
var obj = new NewFoo("张三",18,10);
console.log(obj);//NewFoo {name: "张三", age: 18, number: 10}
javascript实现继承的六种方式的更多相关文章
- JavaScript是如何实现继承的(六种方式)
大多OO语言都支持两种继承方式: 接口继承和实现继承 ,而ECMAScript中无法实现接口继承,ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现,下文给大家技术js实现继承的 ...
- javascript实现继承3种方式: 原型继承、借用构造函数继承、组合继承,模拟extends方法继承
javascript中实现继承的三种方式:原型继承.借用构造函数继承.混合继承: /* js当中的继承 js中 构造函数 原型对象 实力对象的关系: 1 构造函数.prototype = 原型对象 2 ...
- javascript 中继承实现方式归纳
转载自:http://sentsin.com/web/1109.html 不同于基于类的编程语言,如 C++ 和 Java,javascript 中的继承方式是基于原型的.同时由于 javascrip ...
- 实现JavaScript中继承的三种方式
在JavaScript中,继承可以通过三种手法实现原型链继承 使用apply.call方法 对象实例间的继承. 一.原型链继承 在原型链继承方面,JavaScript与java.c#等语言类似 ...
- DOM笔记(十三):JavaScript的继承方式
在Java.C++.C#等OO语言中,都支持两种继承方式:接口继承和实现继承.接口继承制继承方法签名,实现继承则继承实际的方法和属性.在SCMAScript中,由于函数没有签名,所以无法实现接口继承, ...
- JavaScript实现继承的方式和各自的优缺点
ECMAscript只支持实现继承,主要是依靠原型链来实现的. JavaScript实现继承的方式: 类式继承 构造函数继承 组合继承 寄生组合式继承 1.类式继承 //类式继承 //声明父类 fun ...
- Javascript之继承(原型链方式)
1.原型链 原型链是JavaScript中继承的主要方法. 每个构造函数都拥有一个原型对象,原型对象都包含一个指向构造函数的指针(constructor),实例都包含一个指向原型对象的内部指针(__p ...
- Javascript模拟继承(赠送.net吐槽一段)
首先吐槽一句,今年的就业形势很不乐观啊,特别是搞.net的(相对java),特特别是还没出校门没有正式工作经验的,找个实习很难,前些天接了个面试电话,上来就质疑我“你一个在校大学生怎么可能做了那么多项 ...
- 详解Javascript的继承实现(二)
上文<详解Javascript的继承实现>介绍了一个通用的继承库,基于该库,可以快速构建带继承关系和静态成员的javascript类,好使用也好理解,额外的好处是,如果所有类都用这种库来构 ...
随机推荐
- 建站手册-浏览器信息:Google Chrome 浏览器
ylbtech-建站手册-浏览器信息:Google Chrome 浏览器 1.返回顶部 1. http://www.w3school.com.cn/browsers/browsers_chrome.a ...
- 测开之路三十:Flask基础之jinja2模板继承
实现某些位置的内容固定,某些位置的内容动态展示,如: 中文文档地址:http://docs.jinkan.org/docs/jinja2/templates.html#template-inherit ...
- python学习笔记之入门
1.变量 变量即为可以改变的量,值是可以更改的. 如何定义 name = ‘name’ age = 20 .......... 变量的定义规范 1.变量名只能是 字母.数字或下划线的任意组合 .2. ...
- selenium,webdriver,xpath获取全国各地的邮编
代码要多敲 注释要清晰 其中区号没有拿取出来 看到的朋友可以作为练习 ,有好的方法可以在下面留言 from selenium import webdriver from lxml import etr ...
- Linux目录及说明
Linux目录及说明 [常见目录说明] 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目 ...
- 系统安装2---BIOS设置
对于新的电脑通过U盘安装Windows系统,我们第一步绝对是修改BIOS设置.在这里面我们要修改几项比较重要的选项.如下介绍: 修改第一启动项:目的就是让电脑的第一启动项变为U盘启动. 调节引导方式: ...
- Python的基础类型(int,bool,str):
Python的基础类型(int,bool,str): 1.int -------> 整形:主要用力进行数字计算 2.string ------>字符串:可以保存少量数据并进行相关的操作 3 ...
- vue证明题一,vue全家桶的构成
简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...
- 迷你redux实现,redux是如何进行实现的?
export function createStore(reducer){ let currentState={} let currentListeners=[] function getState( ...
- Feign基础教程
https://blog.csdn.net/u010862794/article/details/73649616 简介 Feign使得 Java HTTP 客户端编写更方便.Feign 灵感来源于R ...