面向对象01-对象的动态特性

对象的动态特性

在js中可以动态的对对象属性进行增加、修改和删除

访问对象的方法

01 可以使用点语法访问

02 可以使用[]语法访问,注意对象的属性必须是字符串,如若不是字符串,会将key值当做变量去作用域内查找,存在会赋值给key,不存在会报错。

代码示例

    //01 创建对象
    var obj = {
        name:"刘德华",
        age:60
    };

    //02 动态的为对象添加属性
    obj.height = "180cm";
    console.log(obj.height);

    //03 动态的为对象添加方法
    obj.maiMeng = function () {
        console.log("华仔会卖萌噢");
    };

    obj.maiMeng();

    //04 修改属性的值:如果设置的属性以前不存在,那么就是添加,如果设置的属性已经存在了,那么就是修改
    obj.name = "王宝强";
    console.log(obj.name);

    //05 删除属性
    delete obj.name;

    console.log(obj.name);  //undefined
    console.log(delete obj.name); //返回值为布尔值,true为删除成功

关键字in与delete

in关键字

  • 判断属性是否存在于对象中,注意所有的key值都为字符串
  • for in 循环中,遍历对象

代码示例

    var obj = {
        name:"张三",
        age:18
    };

    for(k in obj)
    {
        console.log(k,obj[k]);
    }

    //检测obj对象中是否存在name这个属性
    console.log("name" in obj);

注意:in关键字用于操作数组的时候检测的是索引值并非数组元素

delete关键字

  • 删除对象中的属性 delete 对象.属性

  • 删除没有使用var声明的变量

    (1.通常情况下,声明变量需要使用var关键字,默认所有的全局变量都是window的属性;2.特殊情况下,不使用var声明的变量默认为全局变量)

  • 返回值为boolean类型,true表示删除成功

注意点

  • 思考:使用var声明的全局变量可以被删除吗? 不可以
  • 直接添加在window上面的属性可以被删除吗? 可以
    *删除对象中不存在的属性,返回值为rue
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,319评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,877评论 18 399
  • 学生时代结束,跟大多数人一样,找了工作。 与大多数人不一样的是,因为工作,不得不长期出差。 我住在长三角,工作就是...
    yours_772b阅读 146评论 0 0