持续创作,加速成长!这是我参与「掘金日新计划 · 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在执行时会做四件事
- 在内存创建一个新的空对象
- 让this指向这个新对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象
遍历对象属性
for...in语句
for(变量 in 对象名字){
//代码
}
栗子
for(var k in obj){
console.log(k);//这里输出的是属性名
console.log(obj[k]);//这里输出的是属性值
}
删除对象的 属性
使用delete删除对象的 属性,比如在控制台中输入以下代码
delete student.name;