图1
面相对象编程是一种思想,js实现了这种思想
对象字面量: 就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。
代码样例:
<!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>Document</title>
<script>
//1利用字面量创建对象{}
// var obj = {}; //创建了一个空对象
var obj = {
uname: 'zhangsan',
age: 18,
sex: '男',
sayHi: function () {
console.log('Hello');
}
}
//(1)里面的属性或者方法我们采取键值对的形式 (键)属性名: (值)属性值
// (2) 多个属性或者方法中间用逗号隔开的
// (3) 方法冒号后面跟的是一个匿名函数
//2使用对象
console.log(obj.uname);
console.log(obj['sex']);
obj.sayHi();
// (1) 调用对象的属性我们采取: 对象名.属性名
// (2) 调用对象的属性还有一种方法: 对象名['属性名']
// (3) 调用对象的方法: 对象名.方法名()
</script>
</head>
<body>
</body>
</html>
个人理解:new关键字可以结合函数创建对象,主要是new关键字起到的作用,所以函数需要满足new关键字的要求,这个结合new关键字的函数我们称为构造函数。
new关键字的工作步骤及原理:
语法格式:
<!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>Document</title>
<script>
// 利用构造函数创建对象
// 构造函数的语法格式
function 构造函数名() {
this.属性名 = 值;
this.方法名 = function () {
console.log('Hello');
}
}
//实例化对象
new 构造函数名();
</script>
</head>
<body>
</body>
</html>
代码样例
<!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>Document</title>
<script>
function Star(uname, age, sex) {
this.uname = uname;
this.age = age;
this.sex = sex;
this.sayHi = function (sing) {
console.log(sing);
}
}
var pepole = new Star('zhangsan', 18, '男');
console.log(pepole.uname);
console.log(pepole['sex']);
pepole.sayHi('welcome!');
</script>
</head>
<body>
</body>
</html>
构造函数书写注意内容
构造函数名字首字母要大写
构造函数不需要return
代码样例:
<!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>Document</title>
<script>
// 利用new Object创建对象
var obj = new Object(); // 创建了一个空的对象
obj.uname = 'zhangsan'; // 追加属性
obj.sex = '男';
obj.sayHi = function () { //追加方法
console.log('Hi');
}
// 使用对象
console.log(obj.uname);
console.log(obj['sex']);
obj.sayHi();
</script>
</head>
<body>
</body>
</html>
for...in语句用于对数组或者对象的属性进行循环操作。
代码样例:
<!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>Document</title>
<script>
// 对象遍历
var obj = {
name: 'zhangsan',
age: 18,
sex: '男',
fn: function () {
console.log('Hello');
}
}
for (k in obj) {
console.log(k);
console.log(obj[k]);
}
</script>
</head>
<body>
</body>
</html>
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!