From 45dc5ff722cd8e3eb5d16903d637ec3fd56c1c33 Mon Sep 17 00:00:00 2001 From: qianguyihao Date: Mon, 12 Mar 2018 10:06:15 +0800 Subject: [PATCH] update --- 06-前端基础/05-原型链总结.md | 12 ++++++------ ...继承的几种方式.md => 07-面向对象:类的定义和继承的几种方式.md} | 0 06-前端基础/{07-跨域通信类.md => 08-跨域通信类.md} | 0 ...-安全问题:CSRF和XSS.md => 09-安全问题:CSRF和XSS.md} | 0 06-前端基础/{09-算法问题.md => 10-算法问题.md} | 0 5 files changed, 6 insertions(+), 6 deletions(-) rename 06-前端基础/{06-面向对象:类的定义和继承的几种方式.md => 07-面向对象:类的定义和继承的几种方式.md} (100%) rename 06-前端基础/{07-跨域通信类.md => 08-跨域通信类.md} (100%) rename 06-前端基础/{08-安全问题:CSRF和XSS.md => 09-安全问题:CSRF和XSS.md} (100%) rename 06-前端基础/{09-算法问题.md => 10-算法问题.md} (100%) diff --git a/06-前端基础/05-原型链总结.md b/06-前端基础/05-原型链总结.md index 89e97fb..b07b8b5 100644 --- a/06-前端基础/05-原型链总结.md +++ b/06-前端基础/05-原型链总结.md @@ -157,14 +157,14 @@ Object是原型链的顶端。 ## new 运算符 -new 运算符的原理如下: +当new Foo()时发生了什么: -(1)创建一个**新的空对象**,此空对象继承自`Foo.prototype`,也就是继承自构造函数的原型。 - -(2)构造函数被执行。执行的时候,传入相应的参数(如果没有参数就不用传),同时 this 指向这个新实例。 - -(3)如果构造函数返回的是“对象”,那么这个对象会取代整个 new 出来的结果。如果构造函数没有创建对象,那么 new 出来的结果为步骤(1)创建的对象。 +(1)创建一个**新的空对象实例**。 +(2)将此空对象的隐式原型指向其构造函数的显示原型。 +(3)执行构造函数(传入相应的参数,如果没有参数就不用传),同时 this 指向这个新实例。 +(4)如果返回值是一个新对象,那么直接返回该对象;如果无返回值或者返回一个非对象值,那么就将步骤(1)创建的对象返回。 +参考《JS高程》6.2.2 ## 类继承和原型继承的区别 diff --git a/06-前端基础/06-面向对象:类的定义和继承的几种方式.md b/06-前端基础/07-面向对象:类的定义和继承的几种方式.md similarity index 100% rename from 06-前端基础/06-面向对象:类的定义和继承的几种方式.md rename to 06-前端基础/07-面向对象:类的定义和继承的几种方式.md diff --git a/06-前端基础/07-跨域通信类.md b/06-前端基础/08-跨域通信类.md similarity index 100% rename from 06-前端基础/07-跨域通信类.md rename to 06-前端基础/08-跨域通信类.md diff --git a/06-前端基础/08-安全问题:CSRF和XSS.md b/06-前端基础/09-安全问题:CSRF和XSS.md similarity index 100% rename from 06-前端基础/08-安全问题:CSRF和XSS.md rename to 06-前端基础/09-安全问题:CSRF和XSS.md diff --git a/06-前端基础/09-算法问题.md b/06-前端基础/10-算法问题.md similarity index 100% rename from 06-前端基础/09-算法问题.md rename to 06-前端基础/10-算法问题.md