美文网首页JS学习笔记
JavaScript中的对象

JavaScript中的对象

作者: CCC_fc97 | 来源:发表于2017-07-30 08:35 被阅读0次

                                      JavaScript中的对象

             面向对象(Object-Oriented,OO)的语言有一个标志,那就是他们都没有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。

             ECMA-262把对象定义为:“无序属性的集合,其属性可以包括基本值、对象或者函数”

             创建自定义对象的最简单方式就是创建一个Object的实例,然后再为它添加属性和方法。如下:

    var person=new object();

    person.name="xiaoming";

    person.age=29;

    person.job="Software Engineer";

    person.sayName=function(){

                   alert(this.name);

    }

    上面的例子中创建了一个名为person的对象,并为它吸纳三个属性(name、age和job)和一个方法(sayName())。sayName()方法用于显示this.name的值。早期的JavaScript的开发人员经常使用这个模式创建新对象。几年后,对象字面量成为创建对象的首选模式,如下:

    var person={

              name"xiaoming:",

              age:29,

              job:"SoftwareEngineer",

    sayName:function(){

                   alert(this.name);

          }

    }

             //JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。//

             JavaScript的对象用于描述现实世界中的某个对象。

             JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,,如果加了,有的浏览器(如低版本的IE)将报错。

             实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。

              如果访问一个不存在的属性会返回什么呢?JavaScript规定,访问不存在的属性不报错,而是返回undefined:

              由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

    var xiaoming = { name:'小明'};

    xiaoming.age;// undefined

    xiaoming.age =18;// 新增一个age属性

    xiaoming.age;// 18

    deletexiaoming.age;// 删除age属性

    xiaoming.age;// undefineddelete

    xiaoming['name'];// 删除name属性

    xiaoming.name;// undefined

    deletexiaoming.school;// 删除一个不存在的school属性也不会报错

    如果我们要检测xiaoming是否拥有某一属性,可以用in操作符:

    'name'inxiaoming;//true 

    'grade'inxiaoming;//false

    in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:

    'toString'inxiaoming;//true

            因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性。

            要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:

    var xiaoming = {name:'小明'};xiaoming.hasOwnProperty('name');//true

    xiaoming.hasOwnProperty('toString');//false

             无论该属性存在于实例中还是在原型中。同时使用hasOwnProperty()方法和in操作符,就可以确定该属性到底是存在于对象中,还是存在于原型中。

    相关文章

      网友评论

        本文标题: JavaScript中的对象

        本文链接:https://www.haomeiwen.com/subject/cthmqxtx.html