zoukankan      html  css  js  c++  java
  • 初识对象

    • 面向对象的特征

      • 封装性、继承性、多态性
      • 对象是键值对的集合:对象是由属性和方法构成的 (ps:也有说法为:对象里面皆属性,认为方法也是一个属性)
    • 对象属性操作

        var student = {
            name: 'sunny',
            age: 20,
            number: '11034P',
            department: 'newEnergy',
            score: function(){
                return '成绩查询系统!';
            },
            job: function(){
                return '就业查询系统!';
            }
        }
        var arr = [];
    
        // .语法
        // .语法后面不能使用js中的关键字、保留字(class、this、function。。。)
        // .语法后面不能使用数字
        // .语法后面可直接执行方法函数
        console.log(student.name);
        console.log(student.score());
    
        // []语法
        // []内部必须用引号引入变量名 (student['number']
        // ["class"]、["this"]等保留字都可以随意使用
        // [0]、[1]、[2]也可以使用 ? 为什么obj[3]==obj["3"]
        // 甚至还可以这样用:["[object Array]"]  jquery里面就有这样的实现
        // 也可以这样用:["{abc}"]  给对象添加了{abc}属性
        console.log(student['age']);
        console.log(student['job']);
    
        // 添加属性
        student['[object Array]'] = 240;
        student['{object}'] = {'arts':85, 'sports': 95};
        for(key in student){
            arr.push(key);
        }
        console.log(student);
        console.log(arr);
        arr = [];
    
        // 修改属性
        student.gender = 'man';
        student['direction'] = function(){
            return '人工智能与图形操作';
        }
        for(key in student){
            arr.push(key);
        }
        console.log(student);
        console.log(arr);
        arr = [];
    
        // 删除属性
        delete student.number;
        for(key in student){
            arr.push(key);
        }
        console.log(student);
        console.log(arr);
        arr = [];
    
    • 获取对象长度的方法
      • 对象的长度不能用.length获取
      • Object具有一个keys属性,可以返回json对象的key的数组
      • Object可以使用in运算符
        var student = {
            name: 'sunny',
            age: 20,
            number: '11034P',
            department: 'newEnergy',
            score: function(){
                return '成绩查询系统!';
            },
            job: function(){
                return '就业查询系统!';
            }
        }
    
        var arr = [];
    
        arr = Object.keys(student);
        console.log(arr.length);
        arr = [];
    
        for(key in student){
            arr.push(key);
        }
        console.log(arr.length);
        arr = [];
    
        console.log('name' in student);
    
    • 对象的浅拷贝与深拷贝
        // 浅拷贝
        var student = {
            name: 'sunny',
            age: 20,
            number: '11034P',
            department: 'newEnergy',
            score(){
                return '成绩查询系统!';
            },
            job(){
                return '就业查询系统!';
            }
        }
        var simple = obj=>{
            let newObj = {};
            for(let key in obj){
                newObj[key] = obj[key];
            }
            return newObj;
        }
        var sunny = simple(student);
        console.log(sunny);
    
        // 深拷贝
        var student = {
            name: 'sunny',
            age: 20,
            number: '11034P',
            department: 'newEnergy',
            score: {
                arts: 95,
                sports: 85,
                program: 95
            },
            job(){
                return '就业查询系统!';
            }
        }
    
        var deepCopy = obj=>{
            var newObj = {};
            for(let key in obj){
                newObj[key] = (typeof obj[key] === 'object') ? deepCopy(obj[key]) : obj[key];
            }
            return newObj;
        }
        var sunny = deepCopy(student);
        console.log(sunny);
    
  • 相关阅读:
    【转】BT5汉化步骤
    创建MySql用户并给用户授权,设置mariadb默认编码,修改mariadb数据存储目录datadir
    《Hadoop实战》陆嘉恒著读书笔记
    org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException: The content of elements must consi
    js获取两个日期之间间隔的天数。兼容IE6、7、8、9,Firefox,Chrome
    mac下下载安装Android Studio教程
    Android Studio下载安装教程及开发环境搭建
    【eoe资源】如何让Android ListView的平滑滚动
    安装Android Studio遇到中文乱码的解决方法
    最新android studio注意事项打不开等问题6种解决方法
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/13548205.html
Copyright © 2011-2022 走看看