第 6 章 es5 对象创建和继承
第 6 章 Object
@(es5)
一、创建对象
1. 字面量
var obj = {}
obj.name = 'lc'
obj.say = function () {
console.log(this.name)
}
obj.say() // 'lc'
或者
var obj = {
name: 'lc',
say: function () {
console.log(this.name)
}
}
obj.say() // 'lc'
2. 工厂模式
3. 构造函数
4. 原型
5. 构造+原型
function Person () {
this.name = 'lc'
}
Person.prototype = {
constructor: Person,
say: function () {
console.log(this.name)
}
}
var person = new Person()
6. 其他
参考 https://juejin.im/entry/58291447128fe1005cd41c52
二、Object静态属性
Object.defineProperty()
Object.keys()
Object.getOwnPropertyNames()
Object.getPrototypeOf()
三、继承
es5 中继承方法,记住一种即可
function extend (Child, Parent) {
var F = function () {}
F.prototype = Parant.prototype
Child.prototype = new F()
// 或者
// Child.prototype = Object.create(Parent.prototyp)
Child.prototype.contructor = Child
}
// 或者
/*
function extend (Child, Parent) {
Child.prototype = Object.create(Parent.prototyp)
Child.prototype.contructor = Child
}
*/
Function Parent () {
// todo
}
extend(PrimaryStudent, Student);
function Child () {
// todo
}
Child.prototype.say = function () {
console.log(this)
}
四、类的知识
严格来见 javascript 中是没有类,所以,要了解类的知识,推荐使用typescript 或者 java
- 私有属性
- 私有方法
- 保护属性
- get 修饰符
进阶 Watch 的实现
第 6 章 es5 对象创建和继承的更多相关文章
- javascript中的对象创建与继承
js是一门基于原型的面向对象语言,与传统的面向对象如Java,C#相比,它在对象创建及继承上有自己独特的实现方式,本文主要描述js中对象创建及继承的一些实践. 1.对象创建 方式一:工厂模式创建对象 ...
- JavaScript对象创建,继承
创建对象 在JS中创建对象有很多方式,第一种: var obj = new Object(); 第二种方式: var obj1 = {};//对象直面量 第三种方式:工厂模式 function Per ...
- js中的对象创建与继承
对象创建 1.工厂模式 优点:解决了创建多个相似对象的问题 缺点:没有解决对象识别问题:每一个对象都有一套自己的函数,浪费资源 function createPerson(name, age, job ...
- javascript对象创建及继承
//****************************************************************************** //创建类的多种方式 //------ ...
- 《JavaScript模式》第5章 对象创建模式
@by Ruth92(转载请注明出处) 第5章:对象创建模式 JavaScript 是一种简洁明了的语言,并没有其他语言中经常使用的一些特殊语法特征,如 命名空间.模块.包.私有属性 以及 静态成员 ...
- JS 中对象的简单创建和继承
对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...
- 创建线程时如果既传入了runnable对象,又继承thread重写了run方法,会执行的哪里的代码
1 使用线程的方式,继承thread类,重写run方法 new Thread() { @Override public void run() { System.out.println("我是 ...
- Typescript中的类 Es5中的类和静态方法和继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- [Effective JavaScript 笔记]第4章:对象和原型--个人总结
前言 对象是js中的基本数据结构.对象在js语言编码中也随处可见,比如经常会用到的函数,也是一个Function构造函数,Function.prototype原型对象.每当声明一个函数时,都会继承Fu ...
随机推荐
- js 上一步 下一步 操作
<a id="syb" href="#" style="display: block;" class="btn button ...
- centos7目录统计之du命令
CentOS下du查看计算目录大小的命令 用法实例: [root@localhost local]# du -hs smgpdfd 3.3G smgpdfd [root@localhost lo ...
- Memcached 总结 启动多个Memcached服务 配置文件详解
一. 1.解压下载的安装包到指定目录. 2.服务安装,使用管理员权限运行以下命令: c:\memcached\memcached.exe -d install 二.同一台Windows机器中启动多个M ...
- Thinkphp5 关联模型
必须建立两个模型分类模型(attr).文章模型(article) attr模型 <?php namespace app\common\model; use think\Model; class ...
- [PGM] Markov Networks
6 Markov Networks 系列 因果影响的独立性 noisy-or模型 和 广义线性模型 略,暂时不感兴趣. Pairwise Markov Networks The last col is ...
- 【中间件安全】Nginx 安全加固规范
1. 适用情况 适用于使用Nginx进行部署的Web网站. 2. 技能要求 熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固. 3. 前置条件 1. 根据站点开放端口 ...
- ElasticSearch6(二)-- Java API连接es
此ElasticSearch系列基于最新版的6.2.4版本. 一.pom.xml依赖 <dependencies> <dependency> <groupId>ju ...
- django通用视图(类方法)
这周是我入职的第一周,入职第一天看到嘉兴大佬的项目代码.视图中有类方法,我感到很困惑. 联想到之前北京融360的电话面试,问我有无写过类方法……看来有必要了解下视图的类方法,上网搜了很多,原来这就是所 ...
- rayleighchan实现瑞利多径衰落信
rayleighchan实现瑞利多径衰落信道 1.命令格式: chan = rayleighchan(ts,fd,tau,pdb) 其中: ts—为输入信号的采样周期, fd—就是Doppler频偏, ...
- react-native 搭建环境
1.安装 nodejs 配置环境变量 node -v npm -v 2.安装 javaSE 1.8以上 http://www.oracle.com/technetwork/java/javase/ar ...