210304
函数
-
什么是函数
- 实现特定功能的n条语句的封装体
- 只有函数是可以执行的,其他类型的数据不能执行
-
为什么使用函数
- 提高代码复用
- 便于阅读交流
-
如何定义函数
- 函数声明
- 表达式
function fn1(){ console.log('fn1()'); } var fn2 = function(){ console.log('fn2()'); } fn1(); fn2();
-
如何(调用)执行函数
- test():直接调用
- obj.test():通过对象调用
- new test():new调用
- test.call/apply(obj):临时让test成为obj的方法进行调用
var obj = {} function say(){ this.xxx = 'isdcjs'; console.log("hello"); } say.call(obj); //hello 可以让一个函数成为指定任意对象的方法进行调用 console.log(obj.xxx); //isdcjs
回调函数
-
什么函数是回调函数
- 自己定义的
- 不需要调用
- 最终执行了
-
常见的回调函数
- dom事件回调函数(onclick=function(){}与用户交互) ==>发生事件的dom元素
- 定时器回调函数(setInterval、setTimeout) ==>window
- ajax请求回调函数(与后台交互)
- 生命周期回调函数
created on 21/03/04
IIFE(匿名函数自调用)
1、理解
- 全称:Immediately-Invoked Function Expression
2、作用
- 隐藏实现
- 不会污染外部(全局)命名空间
- 用它编写js模块
(function(){ //匿名函数自调用
var a = 3;
console.log(a + 3);
})() //6
var a = 4; //全局变量a
console.log(a); //4
;(function(){
var a = 1;
function test(){
console.log(++a);
}
window.$ = function(){ //向外暴露一个全局函数
return{
test: test;
}
}
})()
$().test() //1、$是一个函数 2、$执行后返回的是一个对象 2