javascript原型,继承
//普通对象
//函数对象(有原型 prototy 的属性)
//原型的应用 继承
function Amial(){
this.type = '小于'
}
function cat(name){
this.name = name
}
cat.prototype = new Amial()
var cat1 = new cat('小张')
console.log(cat1.name,cat1.type) //构造器 继承 缺点:把父元素的属性都复制了
function Amial(){
this.type = '动物'
}
function amm(name){
Amial.apply(this) //调用Amial构造器 Amial == amm
//Amial.call(this,x,y,z) Amial.apply(this,[x,y,z])
this.name = name
}
var a = new amm('张三')
console.log(a.type) //组合继承(原型+构造器) 缺点:调用两次父类构造器 function Preson(name){
this.arr = ['js','php']
this.name = name
}
Preson.prototype.showname = function(){
console.log(this.name)
}
function teacher(name,gread){
Preson.call(this,name)
this.gread = gread
}
teacher.prototype = new Preson() // 最关键的一句
var a = new teacher('xiaoming', 23)
console.log(a.arr,a.name,a.gread)
a.showname() //原型+构造+寄生
function father(name){
this.arr = ['aa','bb']
this.name = name
}
father.prototype.showname = function(){
console.log(this.name)
}
function son(name,course){
father.call(this,name)
this.course = course
}
function extend(subobj,superobj){
var proobj = Object.create(superobj.prototype)
subobj.prototype = proobj
}
extend(son, father)
var a = new son('xiaoming', 23)
console.log(a.arr,a.name,a.course)
a.showname()
javascript原型,继承的更多相关文章
- 再谈javascript原型继承
Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍<Javascript模式>中关于原型实现继承的几种方法,下面来一一说明下 ...
- 彻底理解Javascript原型继承
彻底理解Javascript原型继承 之前写过一篇Javascript继承主题的文章,这篇文章作为一篇读书笔记,分析的不够深入. 本文试图进一步思考,争取彻底理解Javascript继承原理 实例成员 ...
- [转]Javascript原型继承
真正意义上来说Javascript并不是一门面向对象的语言,没有提供传统的继承方式,但是它提供了一种原型继承的方式,利用自身提供的原型属性来实现继承.Javascript原型继承是一个被说烂掉了的话题 ...
- JavaScript原型继承工作原理
原型继承的定义 当你阅读关于JS原型继承的解释时,你时常会看到以下这段文字: 当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止.——出自JavaScript秘 ...
- 【读书笔记】读《编写高质量代码—Web前端开发修炼之道》 - JavaScript原型继承与面向对象
JavaScript是基于原型的语言,通过new实例化出来的对象,其属性和行为来自于两部分,一部分来自于构造函数,另一部分是来自于原型.构造函数中定义的属性和行为的优先级比原型中定义的属性和优先级高, ...
- JavaScript 原型继承开端
1.原型继承本质 就javascript对象系统的实现来讲,对象并没有原型,而构造器有原型(构造器.prototype指向其原型).对象只有构造自某个原型的说法,并没有持有某个原型的说法. ...
- 浅析Javascript原型继承(转)
引自: http://blog.csdn.net/kittyjie/article/details/4380918 原作者解释的浅显易懂,非常不错的JavaScript prototype总结 JS没 ...
- Javascript原型继承容易忽略的错误
编写Javascript的开发者都知道,JS虽然没有类(ES6添加了class语法),但是可以模拟出OOP语言的类和面向对象的概念,比如我们都知道的一句话,Javascript中处处是对象,而面向对象 ...
- javascript原型继承圣杯模式
javascript纯面向对象开发需要使用到的一个模式,来对对象之间原型继承做中间层代理避免重复继承与代码杂乱 <!DOCTYPE html> <html lang="en ...
- javascript原型继承
在传统的基于Class的语言如Java.C++中,继承的本质是扩展一个已有的Class,并生成新的Subclass. 由于这类语言严格区分类和实例,继承实际上是类型的扩展.但是,JavaScript由 ...
随机推荐
- Java反射获取方法参数名
正常环境下,获取不到参数的名称,使用java反射时,第一个参数名是arg0,第二个参数是arg1,与我们代码中写的对不上. java反射过程中,需要我们做好判断: if(!parameter.is ...
- Python 数据结构及语法
Python 数据结构及语法 Python 数据结构及其接口方法 列表 lst = [] lst.sort() # 排序列表 lst.reverse() # 反转列表 lst.append() # 表 ...
- mapper动态代理
Dao接口的实现类仅仅是通过sqlsession的相关api定位到映射文件mapper中的相应id的sql语句,真正对DB进行操作的工作是由框架通过mapper中的sql完成的. mybatis框架抛 ...
- .NetCore【中间件】API文档Swagger
Swagger 为API接口生成文档 Core中添加Swagger nuget安装包 install-package Swashbuckle.AspNetCore 注册服务 public void C ...
- studiostyl.es网站scheme文件无法下载
原因网站引用Google的服务 解决方法:查看网页源码.选择选取页面中的元素,选择download按钮,如下图所示 downloadExisting后面的数字代表主题的ID. 在网站中输入https: ...
- CF1534F2 Falling Sand (Hard Version)
个人思路: 每个点向相邻沙子连边,向本列和相邻 \(2\) 列下方第一个沙子连边. 对于一个 DAG,所有入度为 \(0\) 的点会覆盖全部点.我们缩点即可通过 F1. 但是这样做是过不了 F2 的. ...
- SHR常用f7[更新ing]
<field id="unit" name="unit" label="单位" dataType="F7" uip ...
- drf从入门到飞升仙界 05
反序列化类校验部分源码解析 # 反序列化校验,什么时候开始执行校验 视图类中的ser.is_valid(),就会执行校验,校验通过返回True,不通过返回false # 反序列化类校验的入口: ser ...
- C++实现链式表示多项式加法运算
#include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1#d ...
- Java方法之方法的定义和调用
方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 1.修饰符:修饰符 ...