发表于: 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做自适应兼容性还有问题

收获:


回头捡落下的东西


返回列表 返回列表
评论

    分享到