Classes
1 Class-Like structures in ecma5
1 | // property |
1 概念
-
+
- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。 +
- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window + +
1 | let obj = { |
Class
diff --git a/page/2/index.html b/page/2/index.html index df9c2da..dd7b3bc 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -412,19 +412,19 @@1
-
+
- ECMA5 CALL APPLY 模拟
+ ECMA6 类
-
+
@@ -432,27 +432,9 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-- 参数必须逐个列出来
-
-
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.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;
}
+ 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 PersonType
- more >>
+ more >>
@@ -487,7 +469,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -517,19 +499,19 @@
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -537,14 +519,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应
+
+1
2
3
4
5
6
7
8
Function.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;
}
- more >>
+ more >>
@@ -579,7 +574,7 @@ 1
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 77fb524..24296cc 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -204,14 +204,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -253,14 +253,14 @@
- ECMA5 面向对象编程
+ ECMA5 对象
@@ -400,14 +400,14 @@
- ECMA5 对象
+ ECMA5 面向对象编程
@@ -498,14 +498,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA6 类
@@ -547,14 +547,14 @@
- ECMA5 CALL APPLY 模拟 + ECMA6 类
- + @@ -432,27 +432,9 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-- 参数必须逐个列出来
-
-
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.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;
}
+ 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 PersonType
- more >>
+ more >>
@@ -487,7 +469,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -517,19 +499,19 @@
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -537,14 +519,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应
+
+1
2
3
4
5
6
7
8
Function.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;
}
- more >>
+ more >>
@@ -579,7 +574,7 @@ 1
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 77fb524..24296cc 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -204,14 +204,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -253,14 +253,14 @@
- ECMA5 面向对象编程
+ ECMA5 对象
@@ -400,14 +400,14 @@
- ECMA5 对象
+ ECMA5 面向对象编程
@@ -498,14 +498,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA6 类
@@ -547,14 +547,14 @@
概念
-
-
- 每个函数都包括两个非继承而来的方法 apply call -
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 -
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-
- apply()
-
-
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。 -
- - call()
-
-
- 参数必须逐个列出来 -
-
call 模拟
-
-
- 参数一一对应 -
1 | Function.prototype.myCall = function(_context){ |
Classes
1 Class-Like structures in ecma5
1 | // property |
- 展开全文 >>
+ 展开全文 >>
@@ -517,19 +499,19 @@
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -537,14 +519,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应
+
+1
2
3
4
5
6
7
8
Function.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;
}
- more >>
+ more >>
@@ -579,7 +574,7 @@ 1
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 77fb524..24296cc 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -204,14 +204,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -253,14 +253,14 @@
- ECMA5 面向对象编程
+ ECMA5 对象
@@ -400,14 +400,14 @@
- ECMA5 对象
+ ECMA5 面向对象编程
@@ -498,14 +498,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA6 类
@@ -547,14 +547,14 @@
- ECMA5 this指针 + ECMA5 CALL APPLY 模拟
- + @@ -537,14 +519,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应
+
+1
2
3
4
5
6
7
8
Function.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;
}
- more >>
+ more >>
@@ -579,7 +574,7 @@ 1
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 77fb524..24296cc 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -204,14 +204,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -253,14 +253,14 @@
- ECMA5 面向对象编程
+ ECMA5 对象
@@ -400,14 +400,14 @@
- ECMA5 对象
+ ECMA5 面向对象编程
@@ -498,14 +498,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA6 类
@@ -547,14 +547,14 @@
1 概念
-
-
- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。 -
- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window - +
- 每个函数都包括两个非继承而来的方法 apply call +
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 +
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+ - apply()
-
+
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
+1
2
3
4
5
6
7
8
9
10let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+ - call()
-
+
- 参数必须逐个列出来 +
+ - 参数一一对应 +
概念
-
+
-
+
call 模拟
-
+
1 | Function.prototype.myCall = function(_context){ |