补充前面的知识(函数):
1. 给一个对象设置成员值时:如果已经有这个成员了,就会覆盖之前的值,如果没有就创建。
2.函数的写法:
function fn(){};//声明函数:直接在作用域写函数(可以隐式提升)
var a=function(){};//定义一个函数:直接创建一个函数,用标识符来引用它(不可以隐式提升)
var fn=new Function("执行的代码")
函数自调用:
(function(参数){执行的代码})(参数)
this:代表的是执行这个this代码的环境对象(*this关键字代表了函数调用时的调用者)
小窍门: 在js程序中无论多么复杂的程序,this只需要看离得最近(嵌套)的function的这个单词的调用者
注意:
function fn(){
console.log(this);
}
fn()//这里的fn是一个标识符,代表的是这个函数,并不是fn在调用
//而是隐式的window在调用这个函数
//window.fn()==>this=window
特殊情况:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window。
1.匿名函数的this指的是window,
2.fn()()的this也是window
3.fn()的this也是window
补充:
匿名函数:
(function(){
console.log(123)
console.log(this)})();//自调用