【前端三剑客——JS】对象创建和基本操作

88 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

对象

万物皆对象,对象是一个具体的事物

在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等

  • 属性:事物的特征
  • 方法:事物的行为

创建对象

1. 利用字面量创建对象

对象字面量: 花括号{}里面包含了表达该对象的属性和方法

里面采取键值对的形式表示

var star = {
    name : "xiaoliu",
    age : 18,
    sex : "男",
    sayHi : function(){
        alert('dajiahao');
    }
}// 变量名(对象内成员) : 值

2. 利用new Object创建对象

var andy = new Object();
andy.name = 'xiaoliu';
andy.age = 18;
andy.sex = '男';
andy.sayHi = function(){
    alert('dajiaohao');
}

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

构造函数:

是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用

我们可以把对象中一些公共的属性和方法抽取出来,封装到这个函数里面

tip:

  • 构造函数用于创建某一类对象,首字母需大写

  • 构造函数需与new一起用才有意义

    function Person(name, ago, sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.sayHi = fuction(){
            alert('我的名字:' + this.name + ',年龄' + this.age + ',性别' + this.sex);
        }//构造函数不需要return
    }
    var bigbai = new Person('大白', 100 '男');//用new调用构造函数创建对象
    console.log(bigbai.name);
    

工厂函数.:

function createStudent(name, age, gender) {
  var student = new Object();
  student.name = name;
  student.age = age;
  student.gender = gender;
  student.sayHi = function () {
    console.log("hi,my name is " + this.name);
  };
  return student;
}
var s1 = createStudent("zhangsan", 18, "male");
var s2 = createStudent("lisi", 19, "male");

区别:

  • 在构造函数内没有创建对象,而是使用this关键字,将属性和方法赋给this对象
  • 构造函数内无return函数,this属性下默认是构造函数的返回值
  • 函数名使用首字母大写

调用对象

  • 对象中属性调用:对象.属性名

  • 另一种调用:对象['属性名']

  • 对象里面方法的调用:对象.方法名()

    console.log(star.name)
    console(star['name'])
    star.sayHi();
    

对象中的变量称为属性,不需要声明,用来描述对象特征

对象中的函数称为方法,方法不需要声明,描述对象行为和功能

new关键字

new在执行时会做四件事

  1. 在内存创建一个新的空对象
  2. 让this指向这个新对象
  3. 执行构造函数里面的代码,给这个新对象添加属性和方法
  4. 返回这个新对象

遍历对象属性

for...in语句

for(变量 in 对象名字){
   //代码
}

栗子

for(var k in obj){
    console.log(k);//这里输出的是属性名
    console.log(obj[k]);//这里输出的是属性值
}

删除对象的 属性

使用delete删除对象的 属性,比如在控制台中输入以下代码

delete student.name;