函数的四种调用方式

调用函数有4种方式:

  1. obj.func(); //直接用对象调用,或直接方法调用
  2. func.call(obj,args);//参数列出,call可以改变函数运行的作用域
  3. func.apply(obj,[m,n......]);//参数数组,apply同样可以改变函数运行的作用域,与call区别在于,第二个参数用数组的方式传入
  4. func.bind() //bind()返回的是一个函数,需要bind()参数放绑定的对象,后面再加括号才执行
    var name="wang",age=17;
    var obj={
        name:"zhang",
      objAge:this.age,
      myfun:function(){console.log(this.name+"年龄"+this.age)}
    }; 
    var db={name:"dema",age:99} ; 
    obj.myfun();                               //zhang年龄undefined
    obj.myfun.call(db);                //dema年龄99
    obj.myfun.apply(db);      //dema年龄99
    obj.myfun.bind(db);       // ƒ (){console.log(this.name+"年龄"+this.age)}
    console.log(obj.objAge);    //17,此时this指向window
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,142评论 0 5
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,742评论 0 38
  • 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...
    呼呼哥阅读 8,917评论 0 1
  • 1.函数参数的默认值 (1).基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。
    赵然228阅读 4,035评论 0 0