美文网首页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对象

    概念 JavaScript 中的对象:JavaScript 中的对象其实就是生活中对象的一个抽象。JavaScri...

  • js的prototype

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解...

  • JavaScript - prototype理解

    Javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解...

  • 网络编程(十八) JavaScript(8)

    一、 JavaScript内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 、内置对...

  • 原型与原型链

    javascript中的每个对象都有一个内置的属性prototype,Javascript中对象的prototyp...

  • RxJs学习笔记3--js基础知识--对象

    JavaScript对象 定义对象 空格和换行不是必须的: 个人总结: JavaScript中对象用 { } 来创...

  • 复习javascript--(2)--常用语法

    本文主要是对javascript常用的语法进行笔记 1.JavaScript 对象 javascript中的对象主...

  • JavaScript面向对象的几个概念

    JavaScript_Object_Oriented proto成员 数组对象在JavaScript引擎中的对象模...

  • JavaScript|对象

    对象: JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。在 JavaScript 中,...

  • JS-day05-5.3

    内置对象 JavaScript中的对象分为3种:内置对象、浏览器对象、自定义对象 JavaScript 提供多个内...

网友评论

    本文标题: JavaScript中的对象

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