js笔记(暑假4)

例3:圣杯模式:这个方法和上面的那个都行,但是最好写下面这个!
    var inherit = (function (){
        var F = function (){};
        return function (Target,Origin){
            F.prototype = Origin.prototype;
            Target.prototype = new F();
            Target.prototype.constructor = Target;
            Target.prototype .uber = Origin.prototype;
        }
    }());
补充:
CSS知识:css中但凡是文字类的属性包括文字类的颜色font-size等,文字类属性有一个传递的特性,如果子元素没设置文字类属性的话,就默认继承父元素的文字类属性。所以font-size默认属性就是inherit。
原型只是实现继承的一种方法,提升不到工业化的程度

63.命名空间
1.好处:管理变量,防止污染全局,适合模块化开发
2.污染全局变量的解决方法两种:
(1)老办法解决冲突的方法:命名空间(其实就是org),但是现在一般都用webpack
 例1:
    var org = {
        department1 : {
            liufangyan : {
                name : 124,
                age : 21,
            },
            liuyangyan : {

            }
        },
        department2 : {
            liuyuanyuan : {
                name : 124,
                age : 27,
            }

        }
    }
    var liufangyan = org.department1.liufangyan;
    liufangyan.name;
(2)利用闭包实现变量私有化,不会污染全局变量,下例中,就是将特定的功能放进闭包中去,然后留出一个函数作为接口方便以后的启用,将函数传给init。
其实也就是将全局变量要实现的功能放在了局部中,就是让各自互相不污染。这样以后要是自己要实现一个功能,这个功能是可以复用的(重复使用),就可以把这个功能提取到这样的一个闭包中,保存到文件夹中,以后用就可以copy过来,根本不用担心什么污染的问题
 例2:
    var name = 'LFY';
    var initLiu = (function (){                         //init叫做初始化,把入口函数,即最开始启动的函数叫做init
        var name = 'LYY';
        function callName(){
            console.log(name);
        }
        return function (){
            callName();
        }
    }())


 

猜你喜欢

转载自blog.csdn.net/LFY836126/article/details/81461909