1.自定义函数(命名函数)
function fn(){}
2.函数表达式(匿名函数)
var fun =funciton(){}
3.利用new Function('参数1','参数2','函数体') //执行效率差
this指向
普通函数 定时器函数 立即函数 this指向window
构造函数 this指向对象
对象的方法函数 绑定事件函数 this指向调用者
改变this指向
call() 方法
语法:fun.call(指向谁,参数1,参数2)
apply()
语法 fun.apply(指向谁,[传递的值]) //传递的值必须写在数组里面
apply的主要应用 利用apply借助于数学内置对象求最大值等
bind()
语法:fun.bind(指向谁,参数1,参数2) //不会调用原函数 返回值为原函数改变this指向后的新函数
严格模式 //IE10以上支持
为整个脚本开启严格模式 写在<script>标签里面写 'use strict'
为某个函数开启严格模式 写在要开启的函数里面写 'use strict'
严格模式规定
变量规定:
1.变量名必须声明才能使用
2.声明的变量不能删除
this指向问题:
1.严格模式下全局作用域中函数this指向undefined 不是window
2.构造函数不加new调用,this报错 实例化后this指向实例对象
3.定时器 this 指向还是window 事件,对象还是指向调用者
函数变化:
1.函数名中不能有重名的参数
2.不允许在非函数代码块中声明函数 例if{} for{}
高阶函数-函数作为参数传递
闭包 有权访问另一个函数作用域中变量的函数
一个作用域可以访问另一个函数的局部变量
主要作用:延伸了变量的作用范围
递归函数自己调用自己 类似于for循环 必须有退出条件 return
浅拷贝
浅拷贝只拷贝一层,更深层次对象级别的只拷贝引用 对原来的数据会有影响
Object.assign(要拷贝的文件,要拷贝谁)
深拷贝
深拷贝拷贝多层 每一级别的都拷贝 对原来的数据不会有影响
本文深入探讨JavaScript中的函数类型,包括自定义函数、函数表达式及newFunction使用方法。详细解析this关键字在不同场景下的指向规则,如普通函数、构造函数及事件绑定中的表现。同时,介绍了call、apply、bind三种改变this指向的方法及其应用,以及严格模式对变量声明和this指向的影响。
249

被折叠的 条评论
为什么被折叠?



