JS——函数、this关键字

72 阅读1分钟

补充前面的知识(函数):

1. 给一个对象设置成员值时:如果已经有这个成员了,就会覆盖之前的值,如果没有就创建。

2.函数的写法:
       function fn(){};//声明函数:直接在作用域写函数(可以隐式提升)
       var a=function(){};//定义一个函数:直接创建一个函数,用标识符来引用它(不可以隐式提升)
       var fn=new Function("执行的代码")

函数自调用:

function(参数){执行的代码})(参数)

image.png

image.png

this:代表的是执行这个this代码的环境对象(*this关键字代表了函数调用时的调用者)

小窍门: 在js程序中无论多么复杂的程序,this只需要看离得最近(嵌套)的function的这个单词的调用者

注意:

function fn(){
 console.log(this);
}
fn()//这里的fn是一个标识符,代表的是这个函数,并不是fn在调用
    //而是隐式的window在调用这个函数
    //window.fn()==>this=window

特殊情况:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window。

 1.匿名函数的this指的是window2.fn()()的this也是window
 3.fn()的this也是window
       

补充:

   匿名函数:
   (function(){
   console.log(123)
   console.log(this)})();//自调用