之前我们有一个时钟,然后以反向思维想一下的话,我们可以做一个倒计时
变量的作用域
全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享。
局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,如果没有,就去外部查找。
函数内部如果不用'var'关键字定义变量,变量可能会变成全局变量,如果用严格模式解析会报错
封闭函数
封闭函数定义:(function(){……})()
封闭函数不会影响到函数外的其他同名函数
封闭函数其他的写法:在匿名函数前加“!”或者“~”,之后加“()”
用变量的方式定义函数
之前定义函数可以在函数之前调用,也可以在之后调用,毕竟有函数的预解析,但是用变量的方式定义函数就不能这样做,应为它是先定义后使用,若提前的话会报错,只有放在函数之后才能使用
闭包
闭包的本质就是函数嵌套,就是在函数里面定义函数,内部函数可以引用外部函数的参数和变量参数和变量不会被垃圾回收机制给回收闭包的用途:可以存循环的索引值、做私有变量计数器
闭包作用一
存循环的索引值
若不适用闭包的话,每一个li都弹出最后运行的数字,因为点击时循环已完毕,i为最后的数字。
闭包的用途2
私有变量计数器
闭包的用途3
做选项卡
Math
Math.random 获取0-1的随机数
Math.floor 向下取整
Math.ceil 向上取整
单体创建对象
方法和属性都在一个{}里边,和python 一样,属性以键值对的方式创建,方法就是定义函数
工厂模式创建对象、
以变量的方式创建一个空对象
然后以空对象为变量带入单体创建对象就可以
构造函数
就是一函数的方式创建一个类 然后在传参的位置传入属性
其他也和之前一样
原型模式
其实就是在原型创建函数之上开发了新功能
call和apply
call和apply的区别
二者都可以改变当前的this,区别在于apply方法要将参数放入数组中再传参
函数的继承
函数不仅可以继承,也可以重写
网友评论