JavaScript 相关概念

2020-04-25  本文已影响0人  BlueSkyBlue

IIFE

IIFE:Immediately-Invoked Function Expression.

匿名函数自调用:

(function(){
  console.log('Anonymous Function')
})()

作用:

  1. 隐藏实现
  2. 不会影响外面命名空间(全局命名空间)
  3. 编写js模块

this

所有函数内部都有一个变量this。它的值是调用函数的当前对象。
任何函数本质上都是通过某个对象调用的。如果没有指定就是window。

如何确定this的值:

test()

此时的this值是window

p.test()

此时的this值是p。

new test()

此时的this为新创建的对象。

p.call(obj)

此时的this为obj。

以下两种情况不加分号会有问题:

  1. 小括号开头的前一条语句。
var a = 3;
(function () {
    
})()

解释:如果不加分号会将3看做是函数名调用之后的函数。

  1. 中方括号开头的前一条语句。
var b = 4;
    [1, 3].forEach(function () {

})

解释:此处如果4后面不加分号,会将之后的[1, 3]看做是截取数组的操作,而4并不是数组,最后4[1, 3]返回的是undefined。

上一篇 下一篇

猜你喜欢

热点阅读