第 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()

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/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 教程

四、类的知识

严格来见 javascript 中是没有类,所以,要了解类的知识,推荐使用typescript 或者 java

  • 私有属性
  • 私有方法
  • 保护属性
  • get 修饰符

进阶 Watch 的实现

参考地址

第 6 章 es5 对象创建和继承的更多相关文章

  1. javascript中的对象创建与继承

    js是一门基于原型的面向对象语言,与传统的面向对象如Java,C#相比,它在对象创建及继承上有自己独特的实现方式,本文主要描述js中对象创建及继承的一些实践. 1.对象创建 方式一:工厂模式创建对象 ...

  2. JavaScript对象创建,继承

    创建对象 在JS中创建对象有很多方式,第一种: var obj = new Object(); 第二种方式: var obj1 = {};//对象直面量 第三种方式:工厂模式 function Per ...

  3. js中的对象创建与继承

    对象创建 1.工厂模式 优点:解决了创建多个相似对象的问题 缺点:没有解决对象识别问题:每一个对象都有一套自己的函数,浪费资源 function createPerson(name, age, job ...

  4. javascript对象创建及继承

    //****************************************************************************** //创建类的多种方式 //------ ...

  5. 《JavaScript模式》第5章 对象创建模式

    @by Ruth92(转载请注明出处) 第5章:对象创建模式 JavaScript 是一种简洁明了的语言,并没有其他语言中经常使用的一些特殊语法特征,如 命名空间.模块.包.私有属性 以及 静态成员 ...

  6. JS 中对象的简单创建和继承

    对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...

  7. 创建线程时如果既传入了runnable对象,又继承thread重写了run方法,会执行的哪里的代码

    1 使用线程的方式,继承thread类,重写run方法 new Thread() { @Override public void run() { System.out.println("我是 ...

  8. Typescript中的类 Es5中的类和静态方法和继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. [Effective JavaScript 笔记]第4章:对象和原型--个人总结

    前言 对象是js中的基本数据结构.对象在js语言编码中也随处可见,比如经常会用到的函数,也是一个Function构造函数,Function.prototype原型对象.每当声明一个函数时,都会继承Fu ...

随机推荐

  1. Java知多少(102)多媒体基础

    本节介绍 Java程序播放幻灯片和动画,播放声音和视频的方法. 播放幻灯片和动画 用实例说明播放幻灯片和动画的方法. [例 12-7]小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示. ...

  2. Ubuntu下搜狗输入法只显示黑框,不显示输入的汉字选项

    1. cd ~/.config 2.删除三个文件夹: SogouPY, SogouPY.users, sogou-qimpanel 然后重启输入法

  3. for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本

  4. Orleans学习总结(五)--监控篇

    上篇说完了Orleans学习总结(四)--集群配置篇,这次我们来说下监控 Orleans有一个强大的社区,为Orleans开发着各种各样的扩展工具,我们用的是OrleansDashboard.Dash ...

  5. Socket 服务端使用多线程实现多客户端通讯实例

    socket通信原理 Java多线程实现Socket通讯 1.服务端 import java.io.IOException; import java.net.ServerSocket; import ...

  6. Linux环境部署

    1,开机初始化的配置 iptables -F # 清空防火墙 /etc/init.d/iptables stop # 关闭iptables setenforce # 暂停selinux 2,编译安装p ...

  7. python3之文件操作

    一   打开文件   根目录在d盘的文件名为‘学习资料.txt’的文件 a)绝对路径(最开始的,根目录文件)例:    e:\学习资料.txt 相对路径   直接用文件名字 b)操作方式  只读  只 ...

  8. day_6.17 gevent版服务器

    用协程做并发服务器   gevent版本: monkey.patch_all() 修改了自己的代码 只能用mokey里面的代码 #!--*coding=utf-8*-- #2018-6-17 12:0 ...

  9. Solr-全文检索工具简介

    一.Solr的简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中.都是W ...

  10. ubuntu部署安装 MySQL 5.7

    安装 MySQL 5.7安装 MySQL 运行命令: apt-get -y install mysql-server mysql-client 你会被要求提供MySQL的root用户密码 : New ...