<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>对象基础概念</title>
</head>
<body>
<script>
/*
javascript对象
对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法).
*/
/*
1 对象定义
1.1 利用对象字面量创建对象 {}
1.2 利用 new Object 创建对象
1.3 利用构造函数创建对象
*/
// 1 对象定义
// 1.1 利用对象字面量创建对象 {}
// var obj = {}; // 创建了一个空的对象
var obj = {
uname: '张三疯',
age: 18,
sex: '男',
sayHi: function() {
console.log('hi~');
}
}
/*
(1) 里面的属性或者方法我们采取键值对的形式 键 属性名 : 值 属性值
(2) 多个属性或者方法中间用逗号隔开的
(3) 方法冒号后面跟的是一个匿名函数
2. 使用对象
(1). 调用对象的属性 我们采取 对象名.属性名 .
*/
console.log(obj.uname);
// (2). 调用属性还有一种方法 对象名['属性名']
console.log(obj['age']);
// (3) 调用对象的方法 sayHi 对象名.方法名() 千万别忘记添加小括号
obj.sayHi();
// 1.2 利用 new Object 创建对象
var obj1 = new Object(); // 创建了一个空的对象
obj1.uname = '张三疯';
obj1.age = 18;
obj1.sex = '男';
obj1.sayHi = function() {
console.log('hi~');
}
// (1) 我们是利用 等号 = 赋值的方法 添加对象的属性和方法
// (2) 每个属性和方法之间用 分号结束
console.log(obj1.uname);
console.log(obj1['sex']);
obj1.sayHi();
// 1.3利用构造函数创建对象
/*
我们需要创建四大天王的对象 相同的属性: 名字 年龄 性别 相同的方法: 唱歌
构造函数的语法格式
function 构造函数名() {
this.属性 = 值;
this.方法 = function() {}
}
new 构造函数名();
*/
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var ldh = new Star('刘德华', 18, '男'); // 调用函数返回的是一个对象
// console.log(typeof ldh);
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('冰雨');
var zxy = new Star('张学友', 19, '男');
console.log(zxy.name);
console.log(zxy.age);
zxy.sing('李香兰')
/*
1. 构造函数名字首字母要大写
2. 我们构造函数不需要return 就可以返回结果
3. 我们调用构造函数 必须使用 new
4. 我们只要new Star() 调用函数就创建一个对象 ldh {}
5. 我们的属性和方法前面必须添加 this
*/
</script>
</body>
</html>