JavaScript 创建对象的方式

JavaScript 这三种对象创建的方式你都知道嘛?


1、字面量创建对象

1.1 创建对象

​ 就是使用创建变量的方式,等号后边加一对花括号,花括号里边包含了表达这个对象的属性和方法,属性与方法以键值对的形式来表示。

 var 对象名 = {
                "属性1": "属性值1",
                "属性2": "属性值2",
               		.........
                "方法名": function() {
                   方法体;
                }
            }

1.2 访问对象成员

1.2.1 访问对象属性

​ 1、访问对象里面的属性,可以通过"对象名.属性名"的方式进行访问

//对象名.属性名;
Person.name;

​ 2、访问对象里面的属性,还可以通过"对象名[“属性名”]"的方式进行访问,与数组索引访问元素方式类似,区别在于访问属性方括号里面的是键值名称,并且必须是字符串。

//对象名["属性名"];
Person["name"];
1.2.2 访问对象方法

​ 访问对象里面的方法,可以通过"对象名称.方法名称()"的方式来进行访问。

//对象名.属性名();
Person.run();

2、new Object创建对象

2.1 创建对象

//创建对象
var 对象名称 = new Object();
//添加属性
对象名.属性名1 = 属性值1;
对象名.属性名2 = 属性值2.........
//添加属性
对象名.方法名 = function(){
    方法体;
}

注意:

  • Object对象:是复杂数据类型 object 的原始名称(原名称)。而object 类型是JavaScript中所有数据类型的基类,也就是说只要是我们所接触的基本数据类型都是由object衍生而来。
  • new Object():会创建出一个新的object类型的数据,而且这个数据会存储在某个变量中。

2.2 获取对象属性和方法

//获取对象属性
对象名.属性名;
man.name;
//获取对象方法
对象名.方法名();
man.say();

3、自定义构造函数创建对象

3.1 构造函数

3.1.1什么是构造函数

​ 构造函数是一种特殊的函数,主要是用来初始化对象的,它也是对象的一个成员,该方法在对象创建完成后默认执行。

3.1.2 构造函数执行的价值
  • 构造函数的执行必须与new关键字搭配使用
  • 构造函数执行完成后会自动创建一个构造函数所属的原始对象,我们可以理解为其实是构造函数在帮我们创建对象。
  • 可以通过构造函数对原始对象中的属性等成员进行初始化赋。

3.2创建对象

// 自定义构造函数与创建自定义函数的语法基本相同
// 我们可以理解为这一步是创建了一个类
 function 构造函数名称(参数1,参数2,...){  
//创建属性必须使用this.使其指针指向该对象,让该变量与该对象发生关系,这样这个变量就是一个对象的属性了
                this.name = 参数1;
                this.age = 参数2;
                ......
//创建方法必须使用this.使其指针指向该对象,让该函数与该对象发生关系,这样这个函数就是一个对象的方法了
                this.方法名 = function(){
                    方法体;
                }
            }
//实例化对象
var 对象名 = new 构造函数名称();
//访问对象属性
对象名.属性名;
//访问对象方法
对象名.方法名();
3.2.1 示例
            function Man(){
                this.name="张三";
                this.age=20;
                this.say=function(){
                    console.log("你好");
                }
            }

            var man1=new Man();
            console.log(man1.name);
            man1.say();
3.2.2自定义构造函数创建对象的注意点
  • 构造函数与普通函数其实没什么区别,特殊就特殊在可以创建对象并初始化对象成员……等
  • 在使用构造函数创建对象时,构造函数名称必须使用帕斯卡命名法,即首字母大写。
  • 构造函数内的属性和方法串改你必须使用"this.名称"的方式进行创建或添加。
  • 构造函数不需要return返回结果
  • 当使用自定义构造函数创建对象时(构造函数的调用),必须使用new关键字来调用构造函数。
  • 使用自定义构造函数创建对象的方式,我们可以称之为创建了一个类,而构造函数对这一类对象的公共部分进行了抽象处理。其实我们可以理解为:类是对象的抽象,而对象是类的具体表现。
  • 创建对象使用new 构造函数名称();特指某一类,通过new关键字创建属于这一类的一个新成员对象,这个过程我们称之为类的实例化。
3.2.3 new关键字的功能
  • 在构造函数代码开始执行之前,创建一个新的对象
  • 修改 this 的指向,把 this 指向实例化后的新对象
  • 执行函数的代码
  • 在函数完成之后,返回this,这种方法可以通过对象中的某个函数创建这个对象本身。

4、变量与属性、函数与方法两两之间的区别与联系

  • 属性是对象的一个组成部分,而变量不是,并且变量只是一个存储数据的容器,基本上没有任何的实际含义。
  • 方法是对象的一个组成部分,而函数不是,并且函数只是单独的封装了一些操作算法的简单容器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值