贪吃蛇练习记录

(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压缩
posted @ 2019-08-12 01:02  翎雀  阅读(181)  评论(0)    收藏  举报