koa 基础(十七)原生 JS 中的类、静态方法、继承
1.app.js
/**
* 原生 JS 中的类、静态方法、继承
* es5中的类和静态方法
*/
function Person(name, age) {
// 构造函数里面的方法和属性
this.name = name;
this.age = age;
this.run = function () {
console.log(`${this.name} --- ${this.age}`)
}
} // 原型链上面的属性和方法可以被多个实例共享
Person.prototype.sex = '男';
Person.prototype.work = function () {
console.log(`${this.name} --- ${this.age} --- ${this.sex}`)
} // 静态方法
Person.setName = function () {
console.log('静态方法');
} var p = new Person('zhangsan', '20'); /*实例方法是通过实例化来调用的,静态是通过类名直接调用*/
p.run();
p.work(); Person.setName(); /*执行静态方法*/ /**
* 继承 -- 对象冒充继承和原型链继承
* 对象冒充继承:没法继承原型链上面的属性和方法
* 原型链继承:可以继承构造函数里面以及原型链上面的属性和方法,实例化子类的时候无法给父类传参
*/
function Web(name, age) {
Person.call(this, name, age); /*对象冒充实现继承*/
} Web.prototype = new Person(); /*原型链继承*/ var w = new Web('李四', 20);
w.run();
.
koa 基础(十七)原生 JS 中的类、静态方法、继承的更多相关文章
- 关于js中的类式继承
; }; ,,]; }; ); ; }; //子类 function Bb(){ }; var F=new f(); F.prototype=Aa.prototype;//此处只能传递方法,没有办法传 ...
- 关于原生js中函数的三种角色和jQuery源码解析
原生js中的函数有三种角色: 分两大种: 1.函数(最主要的角色)2.普通对象(辅助角色):函数也可以像对象一样设置属于本身的私有属性和方法,这些东西和实例或者私有变量没有关系两种角色直接没有必然的关 ...
- javascript基础入门之js中的数据类型与数据转换01
javascript基础入门之js中的数据结构与数据转换01 js的组成(ECMAScript.BOM.DOM) js中的打印语句: 数据类型 变量 ...
- 原生JS中apply()方法的一个值得注意的用法
今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...
- JS中定义类的方法
JS中定义类的方式有很多种: 1.工厂方式 function Car(){ var ocar = new Object; ocar.color = "blue" ...
- JS中定义类的方法<转>
转载地址:http://blog.csdn.net/sdlfx/article/details/1842218 PS(个人理解): 1) 类通过prototype定义的成员(方法或属性),是每个类对象 ...
- 原生js中slice()方法和splice()区别
slice()方法和splice()方法都是原生js中对数组操作的方法. slice(),返回一个新的数组,该方法可从已有的数组中返回选定的元素.例如:arrObject(start,end),sta ...
- ThinkPHP 中使用 IS_AJAX 判断原生 JS 中的 Ajax 出现问题
问题: 在 ThinkPHP 中使用原生 js 发起 Ajax 请求的时候.在控制器无法使用 IS_AJAX 进行判断.而使用 jQuery 中的 ajax 是没有问题的. 在ThinkPHP中.有一 ...
- js中的类和对象以及自定义对象
js中的类 1.类的声明 function Person(name,age){ this.name=name; this.age=age; this.test=function(a){ alert(a ...
随机推荐
- mysql复制表的方法
## 跨库复制表的方法 使用navicat 直接使用navicat的 转储sql文件 结构+数据 mysqldump 备份导出 导入 (数据库备份-恢复) mysqldump -h链接ip -P(大写 ...
- 链接进入react二级路由,引发的子组件二次挂载
这个问题很怪,我两个二级路由从链接进入的时候,会挂载两次子组件. 从链接进入,是因为新页面在新标签页打开的. 有子组件是因为公共组件提取 同样的操作,有一些简单的二级路由页面,就不会挂载两次. 讲道理 ...
- mysql 中的 tinyint 字段
只能存储 -128 ~ 127 之间的数字
- 解决 Grep 的多次管道过滤问题
解决 Grep 的多次管道过滤问题 这是个问题,解决了 tail -f crazy.log | grep --line-buffered Hello | grep Time 解决 Grep 的多次管道 ...
- 【AGC003 E】Sequential operations on Sequence
Description 你有一个长度为 \(n\) 的序列,第 \(i\) 项为 \(i\). 有 \(m\) 次操作,每次操作给定一个 \(x\),你需要将序列无限循环后截取前 \(x\) 项,作为 ...
- Python 学习第一天(二)python 入门
1.第一个python程序 1.1 直接打印输出 打开cmd,输入python进入到python交互式环境:(看到>>>是在Python交互式环境下:) 在python交互环境下输入 ...
- chrome插件开发-notification API注意事项
1.win10系统,在系统设置里面,设置开启Google Chrome通知 2.iconUrl必须设置,且图片为ico格式
- Netty TCP 通信失败
前段时间,在搞Netty TCP 通信,踩了一些坑,今天就在这篇总结一下 Netty通信失败原因 Netty TCP 通信失败的可能原因: 1.服务端或客户端,其中一端没有正常启动 2.是否在正确的位 ...
- 【Share Code | HTML & CSS & Javascript】动画片段幻灯片
[查看demo & 下载资源](https://zhaoshuquan.com/posts/15 介绍 本文使用"Pieces"库轻松实现动画片段幻灯片效果. 今天我们想向 ...
- Python之列表与元组的区别详解
相同点:都是序列类型 回答它们的区别之前,先来说说两者有什么相同之处.list 与 tuple 都是序列类型的容器对象,可以存放任何类型的数据.支持切片.迭代等操作 foos = [0, 1, 2, ...