JS类对象实现继续的几种方式
0. ES6可以直接使用class,extends来继承.
1. 原型继承
父类: function Persion(name,age){
this.name = name;
this.age = age;
} // 父类的原型对象属性
Persion.prototype.id = 10; // 子类
function Boy(sex){
this.sex = sex;
}
// 继承实现
Boy.prototype = new Persion('Yuri',30); //要初始化父类不优雅~
var b = new Boy(); alert(b.name)// Yuri
alert(b.id)//10 //这种原型继承的特点:既继承了父类的模板,又继承了父类的原型对象。缺点就是父类实例传参,不是子类实例化传参,不符合常规语言的写法。
2、类继承(借用构造函数的方式继承)
// 父类
function Persion(name,age){
this.name = name;
this.age = age;
} // 父类的原型对象属性
Persion.prototype.id = 10; // 子类
function Boy(name,age,sex){
//call apply 实现继承
Persion.call(this,name,age);
this.sex = sex;
} //Boy.prototype = new Persion(); //这个打开那个原型链对象就可以继承了.
var b = new Boy('Yuri',30,'男');
alert(b.name) // Yuri
alert(b.id)//undinfind 父类的原型对象并没有继承 //这种原型继承的特点:继承了父类的模板,不继承了父类的原型对象。优点是方便了子类实例传参,缺点就是不继承了父类的原型对象
3. 极简主义
//定义父类
var Person = {
createNew: function(){
var person = {};
person.name='Yuri';
person.sleep = function(){ alert("睡懒觉"); };
return person;//返返回这个对象
}
};
//子类
var SuperPerson={ createNew:function(){
var private; //还可以定义私有属性.
var superperson=Person.createNew();
//superperson就要以使用父类的方法和属性了.
//同时增加自己的属性
superperson.fly=function(){}
superperson.power="";
return superperson;
}
} var test=SuperPerson.createNew();
//使用子类的createNew就可以实现继承了.
console.log(
test.fly, test.name, test.power)
没有使用任何的prototype,apply,call
JS类对象实现继续的几种方式的更多相关文章
- Js构造对象-添加方法的三种方式
Js构造函数添加方法有多种方案,来看一个混合方式构造函数的例子:申明person构造函数,有两个属性,name,qq.在原型上添加方法showname.这是最常用的方法. <script> ...
- js实现页面跳转的两种方式
CreateTime--2017年8月24日08:13:52Author:Marydon js实现页面跳转的两种方式 方式一: window.location.href = url 说明:我们常用 ...
- JS与JQ绑定事件的几种方式.
JS与JQ绑定事件的几种方式 JS绑定事件的三种方式 直接在DOM中进行绑定 <button onclick="alert('success')" type="bu ...
- js关闭当前页面(窗口)的几种方式总结(转)
js关闭当前页面(窗口)的几种方式总结 1. 不带任何提示关闭窗口的js代码 代码如下 <a href="javascript:window.opener=null;windo ...
- JavaScript对象属性访问的两种方式
JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...
- js页面跳转常用的几种方式(转)
js页面跳转常用的几种方式 转载 2010-11-25 作者: 我要评论 js实现页面跳转的几种方式,需要的朋友可以参考下. 第一种: 复制代码代码如下: <script langu ...
- JS XMLHttpRequesst对象 http post的五种请求状态
记录一下js中对http请求的几种状态,下附代码 readyState 存有 XMLHttpRequest 的状态.从 0 到 4 发生变化. 0: 请求未初始化 1: 服务器连接已建立 2: 请求已 ...
- js对象实例化的常见三种方式
三种常见模式:工厂模式,构造函数模式,原型模式 <span style="font-size:18px;"><!doctype html> <html ...
- node.js 下依赖Express 实现post 4种方式提交参数
上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ...
随机推荐
- Unix Timestamp
class Foundation_API DateTime /// This class represents an instant in time, expressed /// in years, ...
- openstack 创建镜像生成虚拟机不知道密码如何解决
背景: openstack juno版本,使用glance创建centos7镜像,然后生成虚拟机. 操作步骤: 首先获取镜像http://cloud.centos.org/centos/7/image ...
- Unity3d笔记
当变量重命名后,已序列化保存的值会丢失,如果希望继续保留其数值,可使用FormerlySerializedAs,如下代码所示: [UnityEngine.Serialization.FormerlyS ...
- 用c++STL实现进程管理
项目要求: 设计一个允许n个进程并发运行的进程管理模拟系统.该系统包括有简单的进程控制,其进程调度采用时间片轮转算法.每个进程用一个PCB表示,其内容根据具体情况设置.各进程之间有一定的同步关系(可选 ...
- C#闪动任务栏的方法
用FlashWindowEx可以实现窗口的闪烁,结构如下: /// <summary> /// 闪烁窗口 /// </summary> /// <param name=& ...
- SVN 被防火墙阻止的解决方法
SVN 被防火墙阻止的解决方法: 1. 进入WIN7的防火墙,看到有的SVN服务是被阻止的,专用的和公用的要设置为允许被防火墙阻止的解决方法" TITLE="SVN 被防火墙阻止的 ...
- [转]C/C++获取当前系统时间
原文转自:http://www.cnblogs.com/mfryf/archive/2012/02/13/2349360.html 个人觉得第二种还是比较实用的,而且也是最常用的~ 不过当计算算法耗时 ...
- 2、CDH组件安装
一.zookeeper 1.安装 继续->完成: 二.HDFS 1.安装 继续->完成: 三.yarn.hive 1.安装yarn 继续->完成: 2.安装hive 继续->完 ...
- 使用BIND安装智能DNS服务器(二)---配置rndc远程控制
首先两个BIND DNS服务器要正常运行. 主DNS服务器IP:192.168.1.100 客户机DNS服务器IP:192.168.1.101 1 主DNS端配置: cd /etc/ 生成 ...
- 4.xpath注入详解
0x01 简介 XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在 URL.表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息.XPath注入发 ...