javascript函数的调用有多少

2019-10-251218次阅读javascript

普通函数调用

包括函数声明、匿名函数、函数表达式等调用,this指向window。

function getSum() {
    console.log(this) //window
 }
 getSum()
 
 (function() {
    console.log(this) //window
 })()
 
 var getSum=function() {
    console.log(this) //window
 }
 getSum()

 

对象方法调用

对象方法里的this指向对象

var objList = {
   name: 'methods',
   getSum: function() {
     console.log(this) //objList对象
   }
}
objList.getSum()

 

new 构造器函数调用

new 构造函数名(),this指向构造函数

function Person() {
  console.log(this); //指向构造函数Person
}
var personOne = new Person();
  • 箭头函数不可以当作构造函数使用,也就是不能用new命令实例化一个对象,否则会抛出一个错误。
  • 箭头函数中的this是在定义函数的时候绑定继承自父执行上下文中的this。

 

call和apply、bind间接调用

利用call和apply来实现,this就是call和apply对应的第一个参数,如果不传值或者第一个值为null,undefined时this指向window。

function foo() {
   console.log(this);
}
foo.apply('我是apply改变的this值');//我是apply改变的this值
foo.call('我是call改变的this值');//我是call改变的this值
  • 都是改变this指向,都可接收参数。
  • bind和call是接收单个参数,apply是接收数组。
     
上一篇: javascript函数的3种定义方法  下一篇: Chrome浏览器连续上传相同的图片,第二次点击无效  

javascript函数的调用有多少相关文章