0


js创建对象

一、什么是对象?

  1. 对象是一组无序的相关属性和方法的集合,也就是存储数据的集合。
  2. 对象是由属性和方法组成的。

二、定义对象的三种方式

2.1 字面量定义对象

  • 对象里面的数据单元 采用 键名:键值 或 属性:属性值 的语法形式存储
  • 多个数据单元中间用逗号隔开
  1. //name就是obj对象的键名/属性,'王昭没有君啊'是值、属性值
  2. //fn是一个方法,冒号后面是一个匿名函数
  3. var obj = {name:'王昭没有君啊',sex:'男',age:'**',
  4. fn:function(){
  5. console.log('正在努力写博客');
  6. }
  7. };

调用对象的属性的方法:

(1)对象.属性

  1. 不支持数字键名,不支持解析变量

(2)对象['属性']

  1. 支持数字键名,支持解析变量

调用对象的方法

** **对象.方法名()

  1. var obj = {name:'王昭没有君啊',sex:'男',age:'**',
  2. fn:function(){
  3. console.log('正在努力写博客');
  4. }
  5. };
  6. console.log(obj);
  7. console.log(obj.name);
  8. console.log(obj['name']);
  9. obj.fn();

执行结果:

变量、属性,函数、方法的区别:

** **相同点:变量、属性,他们都是用来存储数据的

不同点:

  1. 变量:单独声明并赋值 使用的时候直接写变量名 单独存在
  2. 属性:在对象里面不需要声明 使用的时候必须是 对象.属性 对象['属性']

不同点:函数、方法,都是实现某种功能的

  1. 函数:单独声明 调用的 函数名()是单独存在的
  2. 方法:是在对象里面的 调用方式: 对象.方法();
  3. 用来描述对象的行为和功能

2.2 new Object定义对象

  • 利用 = 赋值 添加对象的属性和方法
  • 每个属性、方法之间用分号结束
  1. var obj = new Object();
  2. obj.name = '王昭没有君啊';
  3. obj.sex = '男';
  4. obj.age = '**';
  5. obj.fn = function() {
  6. console.log('正在努力写博客');
  7. }
  8. console.log(obj.name);
  9. console.log(obj['sex']);
  10. obj.fn();
  11. console.log(obj);

执行结果:

2.3 构造函数定义对象

构造函数的语法格式

function 构造函数名() {

** this.属性 = 属性值;**

** this.方法 = function() {}**

}

注意:

  1. 前面两种方法定义对象一次只能定义一个对象,如果对象里面的很多 属性和方法 和另一个对象大部分是相同的,一般我们只能进行复制粘贴到另一个对象里,这样写是可以的,但是就显得略微粗糙,怎么办呢,那么我们就可以利用 函数的方法 去重复这些相同的代码,这个函数就称为 **构造函数**,这个函数封装的不是普通的代码,而是封装的对象,它呢,其实就是把对象里面的一些 相同的 属性和方法 抽象 出来 封装到函数里面。

通过new关键字创建对象的过程 就是 对象实例化

  1. function Person(name,num,sex) { //构造函数名首字母需要大写
  2. this.name = name;
  3. this.age = num;
  4. this.sex = sex;
  5. this.fn = function (grade) {
  6. console.log(grade);
  7. }
  8. }
  9. //调用构造函数不需要return 就可以返回结果
  10. //调用构造函数 必须使用 new
  11. //使用 new Person()调用函数 就可以定义一个对象
  12. var protagonist = new Person('叶天帝', 24, '男');
  13. console.log(protagonist.name);
  14. console.log(protagonist.age);
  15. console.log(protagonist.sex);
  16. protagonist.fn('红尘仙');
  17. var fristProtagonist = new Person('荒天帝', 30, '男');
  18. console.log(fristProtagonist.name);
  19. console.log(fristProtagonist.age);
  20. console.log(fristProtagonist.sex);
  21. protagonist.fn('红尘仙');

执行结果:

构造函数和对象的区别:

构造函数:泛指的某一大类

对象:特指某一个具体的事物

三、对象的基本操作

定义一个对象:

  1. var obj = {name:'王昭没有君啊',sex:'男',age:'**',
  2. fn:function(){
  3. console.log('正在努力写博客');
  4. }
  5. };

执行结果:

然后分别进行以下操作 :

**修改对象 **

对象是已经存在的

  1. //修改
  2. obj.name = '王昭君';
  3. obj.sex = '女';

执行结果:

新增对象

  1. 对象是不存在的
  1. //新增
  2. obj.addr = '北京';
  3. console.log(obj);

执行结果:

删除对象

格式一:

  1. delete( 对象.属性 )
  2. delete( 对象['属性'] )

格式二:

  1. delete 对象.属性
  2. delete 对象['属性']
  3. 对象是已经存在的
  1. //删除
  2. delete(obj.sex);
  3. delete(obj['age']);

执行结果:

四、循环遍历对象

对象只能用 for...in 循环遍历

注:for...in 循环在我的另一篇文章 JavaScript数组相关知识 有详解

  1. var obj = {name:'王昭没有君啊',sex:'男',age:'**'};
  2. //循环遍历对象
  3. for (var index in obj) {
  4. //index 存储的是obj对象的键名
  5. console.log(index);
  6. //对象.属性不能解析变量
  7. //这里必须使用 对象['属性'] 的方式,可以解析变量
  8. console.log(obj[index]);
  9. }

执行结果:


本文转载自: https://blog.csdn.net/weixin_58448088/article/details/122373119
版权归原作者 王昭没有君啊 所有, 如有侵权,请联系我们删除。

“js创建对象”的评论:

还没有评论