第 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 ...
随机推荐
- Mysql 地区经纬度 查询
摘要: Mysql数据库,根据地区的经纬度信息,查询附近相邻的地区 2015-03-27 修改,增加 MySQL的空间扩展(MySQL Spatial Extensions)的解决方案: MySQL的 ...
- How to Catch Ctrl-C in Shell Script
ref: https://stackpointer.io/script/how-to-catch-ctrl-c-in-shell-script/248/ #!/bin/sh # this func ...
- lua系列之 lua-cjson模块安装报错问题解决
lua-cjson下载 下载地址 报错信息 [root@LeoDevops lua-cjson]# make cc -c -O3 -Wall -pedantic -DNDEBUG -I/usr/loc ...
- Python 中filter函数用法
filter()和map一样,接收一个函数和一个序列.和map不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素 过滤出奇数: de ...
- [Tensorflow] **Android Meets TensorFlow
TensorFlow Dev Summit 2017 From: Android Meets TensorFlow: How to Accelerate Your App with AI (Googl ...
- [Bayes] Understanding Bayes: Visualization of the Bayes Factor
From: https://alexanderetz.com/2015/08/09/understanding-bayes-visualization-of-bf/ Nearly被贝叶斯因子搞死,找篇 ...
- rtmp简要流程
- 十三、K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》
0.存储过程开头变量定义 ), --单据起始日期 ), --单据截止日期. ), ), ), ), ) @FType varchar(50), --单据类型@FBillNo varchar(50), ...
- WMware 安装 Mac OSX
1,下载unlock.zip工具,破解VMware没有mac选项情况 2. 下载OS X 10.11.1(15B42).cdr 3.MWare虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘” ...
- java基本数据结构和算法
private class Node { 6 private Object data; //数据 7 private Node next = null; //指向下个结点的引用 8 9 public ...