欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初识JavaScript对象--创建对象

程序员文章站 2022-03-17 14:28:21
...

在javascript中,有string,number,boolean,null,undefined这五种基本数据类型,虽然这五种数据类型基本上可以囊括大多数的数据表示,但是由于值的类型比较单一,值与值之间没有联系,这一点不符合js基于对象的特点,所以将Object这一引用数据类型加入是非常有必要的。

对象:是一种复合的数据类型,在对象中可以保存多个不同数据类型的变量(封装)

  • 对象的分类

 . 内置对象(也叫内建对象):是由ECMAScript规范定义的对象和类,是可以不用创建而直接使用的。​​​​​​​​​​​​​​​​​​​​​​​​​​​​

​​​​​​​      eg: Math,String,Array,Date.....

 · 宿主对象:由JavaScript运行环境(比如WEB浏览器)所提供的,

       eg: BOM下的window 、DOM下的document。 (JS=ECMAScript+BOM+DOM)

  . 自定义对象:开发人员自定义的对象,运行中js代码进行创建。

  • 创建对象

​​​​​​​创建对象的三种方法:

1.对象直接量。

创建对象最简单直接的方法,语法规则如下:

var 对象名 ={属性名:属性值 ,属性名:属性值..... }; (注意最后面的;不可省略)

对象直接量是由若干名值对组成的映射表,名/值对中间用分隔,多个名值对之间用 ,分隔。对象的属性名并不强制要求遵循标识符命名规范,也就是说可以任意命名,(类似“#¥%……@%”这样的命名也可以通过并且运行)但是为了提高代码的可读性和复用性,不提倡这样命名,对于属性值来说,属性值可以是任意的数据类型。请看几组例题:

var empty={};         //创建一个空对象
                                       //创建对象的同时添加属性,
var person={name:"小明", age:18};    //当属性值不是按照规范命名的则必须加引号

var book={
 "major book" :"javascript",  //属性名中有空格必须用引号
 "second-book" :"servlet"     //属性名中有连字符必须用引号
};

2.通过new关键字创建对象

相信大多数学过C,java的人已经很熟悉new运算符了,new运算符用来创建并初始化一个新对象,语法规则如下:

var obj =new Object();

obj为变量名,可以根据规范自定义命名,Object()是一个构造函数,用以初始化一个新创建的对象。

增:obj.属性名="属性值"; 保存在对象中的值为对象的属性。

改:因为js语句是自上而下执行的,所以对属性值的修改可以通过覆盖原来的值来完成。

查:console.log(obj.属性名);对象名.属性名用来获取属性值

对数据的操作一般是增,删,改,查。 增,改,查我们前面都实现了那么删除数据应该怎么操作呢?

删:delete  对象名.属性名; 

var obj = new Object(); //创建一个空对象 相当于 var obj={};
var arr = new Array();  //创建一个空数组 想当于 var arr=[];

var obj2 = new Object();
obj2.name="小明";       //为obj2对象添加属性name
obj2.age=18;           //为obj2对象添加属性age 
obj2.name="小红";       //修改obj2中name的属性值为小红
console.log(obj2.age);  //控制台输出 18
delete obj2.name;        //删除obj2中的name属性名和值

在这里需要注意的是查,因为js解释器对属性名的命名不做严格规范,所以就会导致以下这种问题:

当创建对象时的属性名不是按照规范命名的,那么通过对象名.属性名这种方法是取不到属性值的。

var obj =new Object();
obj["123"]=789;  //特殊命名只能按照这种方法赋值
console.log(obj["123"]); //特殊命名只能按照这种方法取值
console.log(obj.123);  //这种方法是无效的

另外,当访问对象中没有的属性名,结果不会报错,而会返回undefined

3.Object.create()

这种方法就很少用到了,相比于前两种来说较为繁琐,语法结构如下:

var obj =Object.create(对象的原型);

var o1= Object.create({x:1;y:2});  //o1继承了属性x和y
var o2 =Object.create(object.prototype); //o2和 new Object()作用一样

 

 

 

 

 

相关标签: js对象