|
5 | 5 | * [01-01](https://github.com/TYRMars/JSlearn#01-01) `变量类型和计算(1)` |
6 | 6 | * [01-02](https://github.com/TYRMars/JSlearn#01-02) `变量类型和计算(2)` |
7 | 7 | * [01-03](https://github.com/TYRMars/JSlearn#01-03) `变量类型和计算(3)-JSON的理解` |
| 8 | +* [01-04](https://github.com/TYRMars/JSlearn#01-04) `原型与原型链-构造函数` |
| 9 | +* [01-05](https://github.com/TYRMars/JSlearn#01-05) `原型规则和示例` |
8 | 10 | ## JS小练习 |
9 | 11 | * JSDemo JS小程序 |
10 | 12 | * JDMenu 京东无延迟菜单 |
@@ -150,6 +152,56 @@ console.log(obj2.x); // 200 |
150 | 152 | JSON.stringify({a:10,b:20}); |
151 | 153 | JSON.parse('{"a":10."b":20}') |
152 | 154 | ``` |
| 155 | + |
| 156 | +## 01-04 |
| 157 | +### 原型与原型链-构造函数 |
| 158 | +* 如何准确判断一个变量数组类型 |
| 159 | +* 写一个原型链继承的例子 |
| 160 | +* 描述new一个对象的过程 |
| 161 | +* zepto(或其他框架)源码中如何使用原型链 |
| 162 | +#### 知识点 |
| 163 | +* 构造函数 |
| 164 | +* 构造函数-扩展 |
| 165 | +* 原型规则和示例 |
| 166 | +* 原型链 |
| 167 | +* instanceof |
| 168 | +#### 构造函数 |
| 169 | +```JavaScript |
| 170 | +funciton Foo(name,age){ |
| 171 | + this.name = name; |
| 172 | + this.age = age; |
| 173 | + this.class = 'class-1'; |
| 174 | + // return this //默认有这一行 |
| 175 | +} |
| 176 | +var f = new Foo('zhangsan',20); |
| 177 | +// var f1 = new Foo('lisi',22) //创建多个对象 |
| 178 | +``` |
| 179 | +#### 构造函数-扩展 |
| 180 | +* `var a = {}` 其实是 `var a = new Object()`的语法糖 |
| 181 | +* `var a = []` 其实是 `var a = new Array()`的语法糖 |
| 182 | +* `function Foo(){...}`其实是 `var Foo = new Function(...)` |
| 183 | +* 使用 `instanceof` 判断一个函数是否是一个变量的构造函数 |
| 184 | + * 如果想判断一个变量是否为“数组”:变量 instanceof Array |
| 185 | + |
| 186 | +## 01-05 |
| 187 | +### 原型规则和示例 |
| 188 | +* 5条原型规则 |
| 189 | +* 原型规则是学习原型链的基础 |
| 190 | +* 所有的引用类型(数组、对象、函数),都具有对象特质、即可自由扩展属性(除了“NULL”以外) |
| 191 | +```JavaScript |
| 192 | +var obj = {}; obj.a = 100; |
| 193 | +var arr = []; arr.a = 100; |
| 194 | +function fn(){ |
| 195 | + fn.a=100; |
| 196 | +} |
| 197 | +``` |
| 198 | +#### `__proto__` |
| 199 | +* 所有的引用类型(数组、对象、函数),都有一个`__proto__`(隐式原型)属性,属性值是一个普通的对象 |
| 200 | +```JavaScript |
| 201 | +console.log(obj.__proto__); |
| 202 | +console.log(arr.__proto__); |
| 203 | +console.log(fn.__proto__); |
| 204 | +``` |
153 | 205 | --- |
154 | 206 |
|
155 | 207 | ### JSDemo JS小程序 |
|
0 commit comments