1 定义
-
-
- 数值、字符串、布尔值这三种原型类型的值,在一听条件下也会自动转化为对象,也就是原始类型的包装对象。 -
- Number String Boolean -
- 包装对象的目的,是得对象模型覆盖js所优质,正门语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。 -
- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。 -
- 自动转换生成的包装对象是只读的,无法修改。 +
- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。 +
- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window +
- 对象的所有键名都是字符串,若键名不符合标识符的条件,则必须加上引号。 -
- 如果使用方运算符,键名必须放在引号里,否则会被当做变量处理。 -
- 数字键可以不加引号,会自动转成字符串。+
1
2
3
4
5
6let obj = { flag: true };
obj[flag] // undefined
obj.flag // true
obj.['flag'] // true
flag ='flag';
obj[flag] // ture概念
-
+
- 每个函数都包括两个非继承而来的方法 apply call +
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 +
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
-
+
- apply()
-
+
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。 +
+ - call()
-
+
- 参数必须逐个列出来 +
+
call 模拟
-
+
- 参数一一对应
- more >> + more >> @@ -770,7 +781,7 @@1
2
3
4
5
6
7
8Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}1
@@ -890,19 +901,19 @@1 -
+ - ECMA5 CALL APPLY 模拟 + ECMA5 数组
- + @@ -910,32 +921,19 @@-+概念
-
-
- 每个函数都包括两个非继承而来的方法 apply call -
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 -
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-
- apply()
-
-
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。 -
- - call()
-
-
- 参数必须逐个列出来 -
+ - 使用Array的静态方法
- 参数一一对应 -
1 静态方法
1.1 判断是否为数组
-
+
call 模拟
-
-
+1
2
3
4
5
6
7
8Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}+1
Array.isArray( array )
@@ -965,7 +963,7 @@- 展开全文 >> + 展开全文 >> diff --git a/page/2/index.html b/page/2/index.html index 00f9d70..8956d58 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -55,7 +55,7 @@
chochi
- 主页
-- 项目
+- demo-pool
@@ -123,7 +123,7 @@chochi
- 主页
-- 项目
+- demo-pool
@@ -140,19 +140,19 @@chochi
-+ - ECMA5 数组 + ECMA5 包装对象
- + @@ -160,19 +160,21 @@-+1 静态方法
1.1 判断是否为数组
-
-
- 使用Array的静态方法 -
-1
Array.isArray( array )
-
-
- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
-
+
- 数值、字符串、布尔值这三种原型类型的值,在一听条件下也会自动转化为对象,也就是原始类型的包装对象。 +
- Number String Boolean +
- 包装对象的目的,是得对象模型覆盖js所优质,正门语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。 +
- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。 +
- 自动转换生成的包装对象是只读的,无法修改。 +
- more >> + more >> -1
2
3
4
5
6
7
8
9
10
11var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/
@@ -202,7 +204,7 @@- 展开全文 >> + 展开全文 >> @@ -232,19 +234,19 @@
+
- ECMA5 this指针 + ECMA6 类
- + @@ -252,14 +254,9 @@-1 概念
-
-
- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。 -
- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window - -
+1
2
3
4
5
6
7
8
9
10let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};Classes
1 Class-Like structures in ecma5
- more >> + more >> @@ -294,7 +291,7 @@1
2
3
4
5
6
7
8
9
10
11
12
13
14// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType1
@@ -324,19 +321,19 @@1 -
+ - ECMA6 类 + ECMA5 面向对象编程
- + @@ -344,9 +341,17 @@-Classes
1 Class-Like structures in ecma5
+1
2
3
4
5
6
7
8
9
10
11
12
13
14// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType1 实例对象与new 命令
1.1 构造函数
-
+
- 函数体内部使用了 this 关键字,代表了所要生成的对象实例。 +
- 生成对象的时候,必须使用 new 命令 +
- 函数名首字母大写,以示区别。 +
1.2 new 命令
-
+
- 执行构造函数,返回一个对象实例。 +
1.2.1 new 原理
- more >> + more >> @@ -381,7 +386,7 @@1
2
3
4graph TB
A[1.创建一个空对象作为将要返回的对象实例]--> B[2.将这个空对象的原型指向构造函数的prototype属性]
B-->C[3.将空对象赋值给函数内部的this关键字]
C-->D[4.开始执行构造函数内部的代码]Class
@@ -411,19 +416,19 @@Class -
+ - ECMA5 面向对象编程 + ECMA5 对象
- + @@ -431,17 +436,14 @@-1 实例对象与new 命令
1.1 构造函数
-
-
- 函数体内部使用了 this 关键字,代表了所要生成的对象实例。 -
- 生成对象的时候,必须使用 new 命令 -
- 函数名首字母大写,以示区别。 -
1.2 new 命令
-
-
- 执行构造函数,返回一个对象实例。 +
- 对象的所有键名都是字符串,若键名不符合标识符的条件,则必须加上引号。 +
- 如果使用方运算符,键名必须放在引号里,否则会被当做变量处理。 +
- 数字键可以不加引号,会自动转成字符串。+
1
2
3
4
5
6let obj = { flag: true };
obj[flag] // undefined
obj.flag // true
obj.['flag'] // true
flag ='flag';
obj[flag] // ture - 主页 -
- 项目 +
- demo-pool
1 键名
-
+
1.2.1 new 原理
- more >> + more >> @@ -476,7 +478,7 @@1
2
3
4graph TB
A[1.创建一个空对象作为将要返回的对象实例]--> B[2.将这个空对象的原型指向构造函数的prototype属性]
B-->C[3.将空对象赋值给函数内部的this关键字]
C-->D[4.开始执行构造函数内部的代码]- 展开全文 >> + 展开全文 >> diff --git a/tags/ECMA5/index.html b/tags/ECMA5/index.html index 66557c0..b2a2b7c 100644 --- a/tags/ECMA5/index.html +++ b/tags/ECMA5/index.html @@ -55,7 +55,7 @@
chochi
chochi
- 主页
-- 项目
+- demo-pool
diff --git a/tags/JS/index.html b/tags/JS/index.html index 2688e7b..11dc334 100644 --- a/tags/JS/index.html +++ b/tags/JS/index.html @@ -55,7 +55,7 @@chochi
- 主页
-- 项目
+- demo-pool
@@ -123,7 +123,7 @@chochi
- 主页
-- 项目
+- demo-pool
@@ -155,14 +155,14 @@chochi
- ECMA5 数组 + ECMA5 包装对象
@@ -204,14 +204,14 @@- ECMA5 CALL APPLY 模拟 + ECMA5 this指针
@@ -400,14 +400,14 @@- ECMA5 this指针 + ECMA5 数组
@@ -449,14 +449,14 @@- ECMA5 包装对象 + ECMA6 类
@@ -498,14 +498,14 @@- ECMA6 类 + ECMA5 面向对象编程
@@ -547,14 +547,14 @@- ECMA5 面向对象编程 + ECMA5 CALL APPLY 模拟
diff --git a/tags/JS/page/2/index.html b/tags/JS/page/2/index.html index 4870ad5..187e0fa 100644 --- a/tags/JS/page/2/index.html +++ b/tags/JS/page/2/index.html @@ -55,7 +55,7 @@chochi
- 主页
-- 项目
+- demo-pool
@@ -123,7 +123,7 @@chochi
- 主页
-- 项目
+- demo-pool
diff --git a/tags/React/index.html b/tags/React/index.html index e415c17..9afc36d 100644 --- a/tags/React/index.html +++ b/tags/React/index.html @@ -55,7 +55,7 @@chochi
- 主页
-- 项目
+- demo-pool
@@ -123,7 +123,7 @@chochi
- 主页
-- 项目
+- demo-pool
1 概念
-
+
1 | var str = 'abc'; |
1 | let obj = { |
1
@@ -708,19 +706,19 @@1
-
+
- ECMA5 对象
+ ECMA5 CALL APPLY 模拟
-
+
@@ -728,14 +726,27 @@
- 1 键名
-
- ECMA5 对象 + ECMA5 CALL APPLY 模拟
- + @@ -728,14 +726,27 @@
- 1 键名
-
1 键名
-
-