javascript高级部分

javascript高级部分学习

函数的创建方式:
//命名函数
function funcName (){}
//函数表达式
var funcName = function (){}
//自调用函数
(function(){})()
//以对象的形式创建函数 
new Function():
var foo = new Funtion('a' , 'b' , 'console.log(a + b)')
foo(1,3)  //4
命名函数 和 函数表达式 区别:
  1. 命名函数由于会被 预解析 所以 函数可以在任意位置调用, 函数表达式 由于 变量的预解析 所以 函数必须要先 声明后 调用
  2. 函数在 if语句中 函数表达式和 命名函数的区别:命名函数 在旧的ie浏览器中 if语句里面的命名函数会被预解析 而函数表达式则 不会被预解析 (解析的其实是存放函数的变量)
高阶函数:

被当做参数传递 或者被当做返回值返回的 函数 叫 高阶函数

共同点: 都可以用来改变 函数中的this指向

call方法: 调用函数 可以有多个参数 第二个参数开始 都是 函数需要的 实参

常见用法: 1. 可以利用call方法 实现借用构造函数 继承属性 2. 借用内置对象的一些方法

apply方法: 调用函数 只有两个参数 第二个参数 必须是 数组 并且 数组中保存的是 函数需要的实参

常见用法: 可以帮我们 在一些 无法传递数组的方法中 使用数组 Math.max()

bind方法: 会返回一个新的函数 不会调用函数 可以有多个参数 从第二个参数开始 后面都是函数需要的实参

常见用法: bind方法 可以用来改变 定时器中 函数的 this指向

闭包:

在两个嵌套的作用域中 内层作用域 中访问了外层作用域中的 变量 或者 函数

特性: 延展了 函数的作用域

缺点: 由于闭包函数的作用域不会被立即释放 所以 闭包会带来一些性能问题(额外的内层占用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值