第 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 ...
随机推荐
- Java知多少(102)多媒体基础
本节介绍 Java程序播放幻灯片和动画,播放声音和视频的方法. 播放幻灯片和动画 用实例说明播放幻灯片和动画的方法. [例 12-7]小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示. ...
- Ubuntu下搜狗输入法只显示黑框,不显示输入的汉字选项
1. cd ~/.config 2.删除三个文件夹: SogouPY, SogouPY.users, sogou-qimpanel 然后重启输入法
- for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本
- Orleans学习总结(五)--监控篇
上篇说完了Orleans学习总结(四)--集群配置篇,这次我们来说下监控 Orleans有一个强大的社区,为Orleans开发着各种各样的扩展工具,我们用的是OrleansDashboard.Dash ...
- Socket 服务端使用多线程实现多客户端通讯实例
socket通信原理 Java多线程实现Socket通讯 1.服务端 import java.io.IOException; import java.net.ServerSocket; import ...
- Linux环境部署
1,开机初始化的配置 iptables -F # 清空防火墙 /etc/init.d/iptables stop # 关闭iptables setenforce # 暂停selinux 2,编译安装p ...
- python3之文件操作
一 打开文件 根目录在d盘的文件名为‘学习资料.txt’的文件 a)绝对路径(最开始的,根目录文件)例: e:\学习资料.txt 相对路径 直接用文件名字 b)操作方式 只读 只 ...
- day_6.17 gevent版服务器
用协程做并发服务器 gevent版本: monkey.patch_all() 修改了自己的代码 只能用mokey里面的代码 #!--*coding=utf-8*-- #2018-6-17 12:0 ...
- Solr-全文检索工具简介
一.Solr的简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中.都是W ...
- ubuntu部署安装 MySQL 5.7
安装 MySQL 5.7安装 MySQL 运行命令: apt-get -y install mysql-server mysql-client 你会被要求提供MySQL的root用户密码 : New ...