一、面向对象编程
面向对象全称为 Object-Oriented Programming(OOP);
面向对象将相同的代码写在模板里,我们可以直接拿来用,可以避免 MVC 里相同的代码。
二、术语
- Namespace --- 命名空间
允许开发人员在一个独特应用相关的名称下捆绑所有功能的容器。 - Class --- 类
定义对象的特征。它是对象的属性和方法的模板定义。 - Object --- 对象
类的一个实例。 - Property --- 属性
对象的特征,比如颜色。 - Method --- 方法
对象的能力,比如行走。 - Constructor --- 构造函数
对象初始化的瞬间, 被调用的方法. 通常它的名字与包含它的类一致. - Inheritance --- 继承
一个类可以继承另一个类的特征。 - Encapsulation --- 封装
一种把数据和相关的方法绑定在一起使用的方法. - Abstraction --- 抽象
结合复杂的继承,方法,属性的对象能够模拟现实的模型。 - Polymorphism --- 多态
多意为“许多”,态意为“形态”。不同类可以定义相同的方法或属性。
三、a || b,a && b
a || b
,a && b
这类运算的值,基本上不可能是 true
/ false
。
它们的值一般是从运算的数据中来取,而不是生成一个新的值。
1 && 0 // 0
1 && 0 && 2 // 0
1 && 0 && console.log(3) // 0
1 && console.log(3) && 0 // 3 (console.log(3)的值是undefined)
1 && 2 && 3 // 3
0 || undefined || null || 1 // 1
- 一连串的
&&
运算,它的结果是遇到的第一个 falsy 值,后面的项就不再检验。 - 一连串的
||
运算,它的结果是遇到的第一个 truey 值,后面的项就不再检验。 - 五个 falsy 值:
0
,NAN
,''
,null
,undefined
。
四、var app = app || {}
var app = {} // 危险代码,可能会覆盖之前的赋值
// 应写为
var app = app || {} // 兜底写法
// 等价于
if (app){
app = app
}else{
app = {}
}
网友评论