原型是什么
在 JavaScript 中,prototype 是函数的一个属性,每个函数中都有一个prototype属性,函数的原型为对象。它主要在函数用作构造函数时使用。
1 | function Person(){ |
由于prototype属性包含的是一个对象,所有我们可以这样为原型上添加属性方法
1 | function Person(){ |
也可以这样
1 | function Person(){ |
在 JavaScript 中,prototype 是函数的一个属性,每个函数中都有一个prototype属性,函数的原型为对象。它主要在函数用作构造函数时使用。
1 | function Person(){ |
由于prototype属性包含的是一个对象,所有我们可以这样为原型上添加属性方法
1 | function Person(){ |
也可以这样
1 | function Person(){ |
ECAMScript 3给Function的原型定义了两个方法,它们是Function.prototype.call和Function.prototype.apply。
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。
call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。
Function.apply(obj,args)方法能接收两个参数:
obj:这个对象将代替Function类里this对象
args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数。
起因,今天在豪大大的JS开发群里有人问了一道题,1
2
3
4
5
6
7
8
9
10
11
12var test=(function(a){
this.a = a;
return function(b){
return this.a.e + this.a.f + b;
}
}(function(a,b){
return{
e:a,
f:b
};
}(1,8)));
console.log(test(4));
对此有点似懂非懂,于是就查阅了一番。
( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,然后再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来查看资料发现并非如此。要理解立即执行函数,需要先理解一些函数的基本概念。
函数声明、函数表达式、匿名函数,立即执行函数
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment