概念辨析

2019-04-07  本文已影响0人  焦糖大瓜子

函数作用域相关:

  1. 提升(hoisting): 无论var出现在一个作用域的哪个位置,这个声明就属于当前函数的作用域,如果声明发生在函数的外的,那个这个变量则属于全局作用域。

  2. this标识符:
    如果一个函数内部有个this引用,那么这个this通常指向一个对象,而不是这个函数本身。但它指向的是哪一个对象,要根据这个函数是如何调用来决定。那如何调用?

 function foo(){
     console.log(this.bar);
 }

 var bar = "global";
 var obj1 = {
     bar: "obj1",
     foo: foo
 }
 var obj2 = {
     bar: "obj2"
 }
 // 四种调用形式

 foo(); // "user strict"模式下,bar使用let来未定义,访问bar属性出错
 obj1.foo(); // obj1
 foo.call(obj2);  // obj2
 new foo();  // undefined
上一篇下一篇

猜你喜欢

热点阅读