46 lines
965 B
Markdown
46 lines
965 B
Markdown
|
## 原型原型链
|
|||
|
|
|||
|
## 创建对象
|
|||
|
|
|||
|
工厂模式
|
|||
|
|
|||
|
```javascript
|
|||
|
function obj(name){
|
|||
|
var o = new Object()
|
|||
|
o.name = name
|
|||
|
return o
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
构造函数
|
|||
|
|
|||
|
```javascript
|
|||
|
function Obj(name){
|
|||
|
this.name = name
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 区别
|
|||
|
|
|||
|
- 没有显式的创建对象
|
|||
|
|
|||
|
- 属性方法直接赋值给his
|
|||
|
- 没有return
|
|||
|
|
|||
|
## instanceof
|
|||
|
|
|||
|
**`instanceof`** **运算符**用于检测构造函数的 `prototype` 属性是否出现在某个实例对象的原型链上。
|
|||
|
|
|||
|
## 原型
|
|||
|
|
|||
|
每个函数都会有prototype属性 这个属性是一个对象 他上面定义的属性和方法会被对象实例共享
|
|||
|
|
|||
|
原型对象会自动获得一个 prototype.constructor 属性 指向 构造函数
|
|||
|
|
|||
|
对象会在浏览器上暴露__proto__ 属性 对象的原型 其他实现中 被隐藏
|
|||
|
|
|||
|
![JavaScript继承(一)——原型链- Bob2100 - OSCHINA](26原型 原型链.assets/c4625bd915e6929a3747af1ff9f79bdc45e.jpg)
|
|||
|
|
|||
|
## 继承
|
|||
|
|
|||
|
自己找找 理解原型连之后就会明白继承
|