贪吃蛇练习记录
(1)函数也是对象,因为有可用的属性
(2)函数.bind();//ES5新增的方法
function(){}.bind()
作用是新建一个方法,bind函数的第一个参数可以改变this的指向
但是bind并没有调用方法
(3)this指向
函数中的this指向window
对象的构造函数和调用方法指向调用的对象
(4)自调用函数主要事项
自调用函数是为了减少命名冲突的可能性
没有;相隔时不要把2个自调用函数写在相邻位置
因为自调用函数返回undefined,会和后面自调用函数拼接起来形成undefined(),会报错,和function也一样
改进1
在函数后面加;
改进2(选这种)
在函数前面加;
假设自调用函数前面有function会分隔开,没有则;自成空语句不影响操作
;(function(window,undefined){
window.xx=xx;
})(window,undefined)
前一对是形参,后一对是实参
正常会在自调用函数内通过window把函数暴露出来让别的函数可以访问。传入参数window是为了让函数的变量名被压缩,让变量的体积变小,未传入参数的话window.xx中的window作为顶级对象不能被压缩
在老版本浏览器中undefined可以被重新赋值,传入undefined为了在需要undefined的时候有undefined原来的值可以被应用
(5)在别的地方访问自调用函数
在自调用函数内的末尾添加window.xx=xx;
将信息添加到window中可以被访问
(7)数组删除
从最后一位开始删除,防止正序删除后数组重新排列使有的数组没有被删除
arr.splice(a,b) a是从哪一位开始删除,b是要删除几位
(8)节点删除
找到该节点对应的父节点对于的子节点
elemets[i].parentNode.removeChild(elemets[i]);
(9)数组添加
arr.push(i);
(10)创建新节点,要注意把他放在对应的父节点里
var div = document.createElement('div');
map.appendChild(div);
(11)options的作用
function Food(options) {
options = options || {};//设置一个空对象防止调用函数没有传值导致报错
this.x = options.x || 0;
this.y = options.y || 0;
this.width = options.width || 20;
this.height = options.height || 20;
this.color = options.color || 'green';
}
避免需要传值的函数没有传值带来报错,提供默认值
(12)全局变量放顶部方便查找
(13)定时器的this指向window不是指向调用对象
(14)让私有成员不被访问到,不要将其放在原型里
(15)在别的函数里可以获得构造函数中this指向的值
新增一全局变量,将this赋值给它,调用直接使用变量就可以访问到this
(16)不同功能的js分开写,便于查找和修改
(17)在实际中为了使数据传的更快,会将多个js合成主js,记得要将主js压缩

浙公网安备 33010602011771号