发表于: 2016-11-30 22:31:43
1 1714
今天完成的事情:
太久没写东西,生疏......
补task5登录静态页面+部分JS代码,html+css很多内容记不清了,赶紧把相关的内容刷一遍;
了解JavaScript 的模块化:
函数的封装:
所谓函数,简单来说就是把一系列具有特定作用的语句打包在一起。而且,这些语句的作用域仅在当前函数内。所以,我们可以将函数的封装,作为模块化的第一步。
function callme (){
return 'this is function.';
}
定义一个 callme 函数,这样可以在之后的代码中进行调用。而callme 函数可以用来完成一个特定的功能。但这样做也有明确的缺点: 污染全局命名空间,并且模块成员之间没有任何关系。callme 函数是一个全局函数。也就不能在全局作用域中再定义一个 callme函数,不然会引起命名冲突。
对象的定义:
为了解决封装函数所带来的问题,可以引入 JavaScript 对象的概念。就是把所有相关的模块成员封装在一个对象中。
var myModule = {
callme : function(){
return 'this is function.';
}
}
解决了全局命名空间可能出现的冲突问题。因为所有的模块成员都是作为一个对象的属性或方法存在的。模块成员之间也存在着某种关系。因为被定义在同一个 JavaScript 对象中,作为属性或方法存在。而这个对象名成为了所有模块成员对外的一个统一的模块名称。
自调函数:
引入对象概念后,这个模块的解决方案不错。但依旧存在着一些问题。如,定义了如下一个模块(对象):
var myModule = {
name : 'longestory',
callme : function(){
return 'this is '+this.name;
}
}
对于这样一个模块(对象),可以从外部对该模块(对象)的属性或方法进行修改。
myModule.name = 'javascript';
这就会导致产生一些意外的安全问题,可以通过自调函数来进行解决。
var myModule = (function(){
var name = 'longestory';
function callme(){
return 'this is '+name;
}
})();
根据上述示例代码,在模块(对象)外部就无法修改内部的属性或方法。而综上所述,就是 JavaScript 的模块化基础。
明天计划的事情:
了解任务需求,解决问题。
遇到的问题:
长时间没练习代码,这样下去要出事;
不管写什么东西,总想用vw、vh做自适应兼容性还有问题
收获:
回头捡落下的东西
评论