• 渡一—— 12-2 继承模式,命名空间,对象枚举(下)


    命名空间
    管理变量,防止污染全局,适用于模块化开发

    对象方法

    var org = {
    
        department1 : {
            jicheng : {
                name : "abc",
                age : 123
            },
            xuming : {
    
            }
        },
        department2 : {
            zhangsan : {
    
            },
            lisi : {
    
            }
        }
    }
    // org.department1.jicheng.name
    var jicheng = org.department1.jicheng
    jicheng.name

    2,闭包 模块化开发
    // 现在用工具类webpack,groud

    var name = "bbb"
    var init = (function(){
    
        var name = "abc";
        function callName(){
            console.log(name);
        }
        return function(){
            callName();
        }
    
    
    }())
    
    init() //abc
    var initDeng = (function(){
    
        var name = 123;
        function callName(){
            console.log(name);
        }
        return function(){
            callName();
        }
    
    }())
    
    initDeng();

    链式调用.css().html().css()

    var deng = {
    
        smoke : function (){
            console.log("smoking,...xuan cool!!!");
            return this;
        },
        drink : function (){
            console.log("drinking...,ye cool!");
            return this;
        },
        perm : function(){
            console.log("preming...,cool!");
            return this;
        }
    
    }
    
    deng.smoke();
    deng.drink();
    deng.prem();
    
    deng.smoke().drink().prem().smoke();

    属性的表示方法

    系统默认是obj['name']
    
    var obj = {
        name : "abc"
    }
    obj.name     //abc
    obj['name']  //abc
    obj.name --> obj['name']
    
    
    var deng = {
        wife1 : {name : "xiaoliu"},
        wife2 : {name : "xiaozhang"},
        wife3 : {name : "xiaomeng"},
        wife4 : {name : "xiaowang"},
        sayWife : function(num){
            /*switch(num){
                case 1:
                    return this.wife1;
                case 2:
                    return this.wife2;
            }*/
            return this['wife'+num]
    
    
        }
    
    }

    对象的枚举
    for in

    for in 上的方法

    1.hasOwnProperty
    2.in
    3.instanceof

    var arr = [1,3,3,4,5,6,6,7,7];
    //遍历 枚举 enumeration
    for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
    }
    
    //遍历对象
    var obj = {
        name : "aaa",
        age : 123,
        sex : "male",
        height : 180,
        wight : 75,
    }
    
    for(var prop in obj){
        console.log(prop + '*' + typeof(prop)); //name*string age*string...
        conso.log(obj.prop) //-->obj['prop'] 打印5个undefined
        conso.log(obj[prop]) //"aaa" 123...
    }
    
    var obj1 = {
        a : 123,
        b : 234,
        c : 345,
    }
    
    for(var prop in obj1){
        console.log(obj.prop++)
    }

    hasOwnProperty 排除原型上的属性
    作用:不想显示__proto__上的方法

    var obj = {
        name : "aaa",
        age : 123,
        sex : "male",
        height : 180,
        wight : 75,
        __proto__:{
            lastName:"deng"
        }
    }
    
    for(var prop in obj){
        if(obj.hasOwnProperty(prop)){
            conso.log(obj[prop]) //不显示lastName
        }
        
    }

    in查看属性是不是对象的,包括自己的和原型父级的属性(没什么用)

    'height' in obj //true
    'lastName' in obj //true

    instanceof

    A instanceof B

    对象 是不是 B构造函数构造出来的
    看A对象的原型链上 有没有 B的原型

    function Person(){}
    var person = new Person();
    
    person instanceof Person //true
    person instanceof object //true
    [] instanceof Array        //true
    [] instanceof object    //true
    
    typeof([]) //object
    typeof({}) //object

    判断是数组或是对象

    //1
    var obj={};
    obj.constructor //function Object();
    [].constructor  //function Array();
    
    //2
    [].instanceof Array //true
    obj instanceof Array //false
    
    //3
    toString
    [1,2,3].toString -->Number.toString()-->'1,2,3'
    Object.prototype.toString.call([]) -->Object.toString()-->'[object Array]'
    Object.prototype.toString.call(123) '[object Number]'
  • 相关阅读:
    Homework template (latex)
    Basic skill of searching
    国庆第三次集训: 2012 ACM-ICPC Asia Regional Contest Chengdu Site
    新学期随笔
    暑期集训感想
    暑期集训 DP 篇
    POJ 1195 Mobile Phones 二维树状数组
    51Nod1246 罐子和硬币,不能均分的题
    一维战舰,一道考区间的好题
    51NOD 1268 和为K的组合 搜索水题
  • 原文地址:https://www.cnblogs.com/lisa2544/p/15318847.html
Copyright © 2020-2023  润新知