JavaScript基础之——对象

对象

  •   在JS中,对象是一组无序的相关属性和方法的集合。所有的事物都是对象,即万物皆对象。
  •   对象是由属性和方法组成的。
  •   属性:事物的特征,在对象中用属性来表示。(常用名词表示)
  •   方法:事物的行为,在对象中用方法来表示。(常用动词表示)
  •  比如一个手机。大小、颜色、重量都是它的属性;而他的方法就是打电话、玩游戏。
  • 对象的存在是为了更好地存储一组数据。对象中为每项数据设置了属性名称。这样在访问数据地时候数据会更语义化、数据结构更加清晰,表意明显,方便开发者使用。

数组和对象记录数据的方式。

数组

  var arr = [‘张三疯’, ‘男', 128,154];

 对象

var obj = {
      "name":"张三疯",
      "sex":"男",
      "age":128,
      "height":154
  }

JS中的对象表达结构更清晰,更强大。

创建对象的三种方式

  1.利用字面量创建对象

  语法

var obj = {key:value,key2:value2...};

  key键:相当于属性名

  value值:相当于属性值。可以是任意类型的值(Number,String,Bool,函数类型等)

  在对象中的方法,也可当成一个属性,称为方法属性。

var stu= {
    name : '小明',
    age : 18,
    sex : '男',
    sayHi : function(){
        alert('大家好啊~');
    }
};

  对象的使用

  访问对象属性

//1.点语法:对象.属性
console.log(stu.name)
//2.中括号语法:对象['属性']
console.log(stu['name'])

  调用对象的方法。(注意:在调用方法时,一定不要忘记带后面的括号)

//1.点语法:对象.方法()
stu.sayHi(); 
//2.中括号语法:对象['方法']()
stu['sayHi']();

  2.利用new Object 创建对象

  创建空对象,通过内置构造函数Object创建对象。

  此时stu变量中已经保存了创建出来的空对象。

var stu = new Object();

  给空对象添加属性和方法

var naruto = new Object();
naruto.name = '鸣人';
naruto.sex = '男';
naruto.age = 19;
naruto.skill = function() {
    alert('色诱术');
}

  3.利用构造函数创建对象

  构造函数,把对象里面一些相同的属性和方法抽象出来封装到函数中。是一种特殊的函数,能够创建对象的函数。(构造函数)

  语法

function 构造函数名(形参1,形参2,形参3) {// 构造函数的形参与对象的普通属性是一致的
     this.属性名1 = 形参1;//形参就是要给属性赋值
     this.属性名2 = 形参2;
     this.属性名3 = 形参3;
     this.方法名 = 函数体;//函数体不需要传递
}

  调用

var obj = new 构造函数名(实参1,实参2,实参3)

  注意:

  •   构造函数约定首字母大写
  •   函数内的属性和方法需要添加this,表示当前对象属性和方法
  •   构造函数不需要return返回结果
  •   必须用new来调用函数

  例子。在创建属性时不要忘记 this

 

 function Lufei(name,age,sex,job){
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.job = job;
    this.sayHi = function(){
         console.log('我的名字叫' + this.name + '年龄:' + this.age +
'性别:' + this.sex + '工作:' + this.job)
      }
  }
var lf = new Lufei('路飞',18,'男','海贼');
lf.sayHi();

 

  

  补充:new关键字的作用

  1.在构造函数代码开始执行之前,创建一个空对象

  2.修改this指向,把this 指向创建出来的空对象

  3.执行函数代码

  4.在函数完成之后,返回this--即创建出来的对象

 

posted @ 2020-08-20 18:22  mingshen123  阅读(231)  评论(0)    收藏  举报