Javascript 第五章总结:A trip to Objectville
前言
在以前的代码中,我们使用 primitive 类型的变量和 procedural manner 来执行脚本。但是,更好的办法是 object-oriented (面向对象)的。作者说:它能让我们 better in a programming sense,并且你不再想用原来的 procedural manner 的那种方法了。
什么是 Object,什么是 OO(Objective Oriented)?
Object的定义
JavaScript 中的 object 指的是: a collection of properties,这些 properties 中又包括它们的 name 和 value.
OO的定义
OO 指的是一种编程的思想,它包括两个要素:state s和 behaviors。通过对象的特征的引用来达到目的,而不是 procedual 那样一步一步来。
引用:
Objects that have state (like a car might have an oil and fuel level), and behavior (like a car can be started, driven and stopped).
In objec-oriented programming, we think in terms of objects rather than procedures.
对于 OO 的好处,作者这样表述:
object-oriented programming allows you to free your mind to think at a higher level.
Javascript 中的 object [state部分]
定义一个 object
格式:
- 开头有 var declaration 和 object 的名字
- 接下来各种 property 包含在 { } 中
- 每个 property 包含
name:value,的格式 - 在 } 别忘了加 ;
范例:
基本操作
- 通过 dot notation 来 access a property,或者通过["nameOfProperty"]来达到目的,范例如:chevy.color 和 chevy['color']
- 改变 property 可以采用赋值的方式
- 增加一个新 property 可以采用赋值的方式
- 可以用 delete operator删除一个 property,格式:delete fido.dogYears.
###object 的实质
object 的 var 类型实际上表表明了这是类似于 pointer 的储存着 reference 的值。
因此,在函数进行传递的时候,由于传递的是地址, 所以在函数中处理的是 same object,因此在函数中的命令会改变它的值。
Javascript 中的 object [behavoir部分]
在 object 中添加函数
格式:先写一个 name,然后再写函数部分:function(parameter){}
范例:
state 和 behavior 之间的关系
Have you also notice these two interact? Like, we can't start a car if it doesn't have fuel, and the amount of fuel should get reduced as we drive the car. Kinda like read life, right?
使用关键字:this
在 object 中,value 和 behavoir 是相互影响的,因此当我们需要在 object 中的 behavior 调用 object 中的 value。
调用的方法是使用 this 这个 keyword. 表示 这个函数所在的 object 中的这个值,因此它是相对的。
格式:this.nameOfproperty
使用 for-in 用来iterate throngh an object's properties
格式:for (var .. in nameOfObject){
block;}
范例:for (var prop in chevy) {
console.log(...)
}
Javascript 第五章总结:A trip to Objectville的更多相关文章
- javascript第五章--函数表达式
① 递归 ② 闭包 ③ 模仿块级作用域 ④ 私有变量
- 读《编写可维护的JavaScript》第五章总结
第五章 UI层的松耦合 5.1 什么是松耦合 在Web开发中,用户界面是由三个彼此隔离又相互作用的层定义的: HTML是用来定义页面的数据和语义 CSS用来给页面添加样式 JavaScript用来给页 ...
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...
- 【JavaScript权威指南(第五版)】笔记之第二部分 客户端JavaScript 第13章~第23章
第十三章 Web浏览器中的javascript ① eg:下面两行代码实际上执行的是相同的功能 var answer = 42; window.answer = 42; ③每个window对象 ...
- 【JavaScript权威指南(第五版)】笔记之第一部分 核心javascript (第1章~第12章)
第一章 javascript概述 ①.javascript是一种松散类型语言;也是一种解释型语言; 第二章 词法结构 ①.大小写敏感 第三章 数据类型和值 ①.isFi ...
- ArcGIS API for JavaScript 4.2学习笔记[16] 弹窗自定义功能按钮及为要素自定义按钮(第五章完结)
这节对Popups这一章的最后两个例子进行介绍和解析. 第一个[Popup Actions]介绍了弹窗中如何自定义工具按钮(名为actions),以PopupTemplate+FeatureLayer ...
- 第五章 JavaScript对象及初识面向对象
第五章 JavaScript对象及初识面向对象 一.对象 在JavaScript中,所有事物都是对象,如字符串.数值.数组.函数等. 在JavaScript对象分为内置对象和自定义对象,要处理一些 ...
- 为什么我要放弃javaScript数据结构与算法(第五章)—— 链表
这一章你将会学会如何实现和使用链表这种动态的数据结构,这意味着我们可以从中任意添加或移除项,它会按需进行扩张. 本章内容 链表数据结构 向链表添加元素 从链表移除元素 使用 LinkedList 类 ...
- [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers
本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...
随机推荐
- ldap集成nginx
nginx版本:1.10.2 nginx安装: wget http://nginx.org/download/nginx-1.10.2.tar.gz tar zxvf nginx-1.10.2.tar ...
- [c/c++] programming之路(1)、编写程序打开记事本、计算器等
一.命令行启动程序 通过命令行关闭程序:taskkill /f /im 程序名.exe 二.打开记事本.计算器 #include <stdlib.h> void main(){ syste ...
- 关于python hashlib模块的使用
hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 #!/usr/bin/ ...
- ununtu 18.04 163 mirror
deb http://mirrors.163.com/ubuntu/ bionic main restricted deb http://mirrors.163.com/ubuntu/ bionic- ...
- (转)MongoDB学习
(二期)25.分布式文件存储数据库MongoDB [课程25]mongod...命令.xmind96.9KB [课程25]MongoD...概念.xmind0.5MB [课程25]MongoDB简介. ...
- 卸载linux系统上自带的mysql
步骤: 1.打开centos命令提示符,切换为root用户 2.输入rpm -qa|grep -i mysql命令以检查系统含有的mysql插件,回车,若没有则说明无自带mysql,系统很干净.若有显 ...
- 论文笔记:Semantic Segmentation using Adversarial Networks
Semantic Segmentation using Adversarial Networks 2018-04-27 09:36:48 Abstract: 对于产生式图像建模来说,对抗训练已经取得了 ...
- (转)PaperWeekly 第二十二期---Image Caption任务综述
本文转自:http://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247484014&idx=1&sn=4a053986f5 ...
- [POJ 2386] Lake Counting(DFS)
Lake Counting Description Due to recent rains, water has pooled in various places in Farmer John's f ...
- 第五个神奇的电梯(代码抢先看<1>)
关于一些自认为比较独特的设计思路,也不知道是好还是坏,放在这里让大家一起看一下. 关于mian函数:因为采用了注册机制所以主函数比较简单. #include "stdafx.h" ...