• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
love千与千寻
博客园    首页    新随笔    联系   管理    订阅  订阅

函数分类 调用 this指向 call apply

函数在js中扮演了几个角色?(函数到底扮演什么角色取决于函数的调用方式)

1. 构造函数(构造函数主要用来实例化对象)

2. 普通函数(一般普通函数都是用来实现一个特定的功能)

3. 作为对象(函数可以作为一个普通对象使用)

javascript

function foo(){

}

new foo();//构造函数

foo();//普通函数

foo.abc = 123;//作为对象

函数的产生的方式:

1、内置函数(内置对象、库函数)

​ Object、Array、Date、RegExp、String、Number、Boolean、Error、Function(*Math不是函数,而是对象)

2自定义函数

1. 函数声明 (可以先调用后声明)

2. 函数表达式  :判断条件时,不符合条件的表达式,不会出现占用内存(必须先声明在调用)

3. new Function() (一般情况下用不到)

 

函数调用的方式:

1、构造函数实例化

2、普通函数调用

3、对象方法调用

4、call 和 apply

5、函数立即调用(沙箱)

call/apply的用法

1、调用函数

2、改变所调用函数的内部的this指向

3、借用其他对象的方法

4、把类数组转成数组

关于this:

 

this到底指向谁取决于函数调用的方式

 

// 普通函数(在非严格模式下,this指的是window;在严格模式下,this的值是undefined)

// 严格模式("use strict"):对语法规则要求更加严格

this出现的场景:

1. 普通函数中的this

2. 构造函数中的this

3. 原型方法中的this

4. 实例对象中的this

5. 定时函数中的this

6. 事件函数中的this

何时需要缓存this?this的指向发生改变

// 对象方法中的this就是方法的调用者

// 事件函数中的this指的是绑定事件的对象

 

posted @ 2017-05-07 20:04  love千与千寻  阅读(125)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3