①字面量方式创建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字面量方式创建</title>
</head>
<body>
<script>
let obj = {
name:'张三',
age:18,
run:()=>{
alert('我跑的快');
}
}
console.log(obj.name,obj.age);
obj.run();
</script>
</body>
</html>
②实例创建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>实例创建</title>
</head>
<body>
<script>
let obj = new Object();
obj.name = '李四';
obj.age = 80;
obj.run = ()=>{
alert('我跑不动了');
}
console.log(obj.name,obj.age);
obj.run();
</script>
</body>
</html>
③工厂模式创建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>工厂模式创建</title>
</head>
<body>
<script>
function createObj(name,age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.run = function(){
alert(this.name+'跑步')
}
return obj
}
var box = createObj('小明',50);
console.log(box.run());
var box1 = createObj('小红',20);
console.log(box1.run());
</script>
</body>
</html
④构造函数创建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">>
<title>构造函数创建</title>
</head>
<body>
<script>
function Student(name,age){
this.name = name;
this.age = age;
}
let s1 = new Student('张三',50);
console.log(s1.name,s1.age);
let s2 = new Student('李四',20);
console.log(s2.name,s2.age);
</script>
</body>
</html>
⑤原型创建对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function Student(){
Student.prototype.name = '张三';
Student.prototype.age = 20
}
let s1 = new Student()
let s2 = new Student()
console.log(s1.name,s1.age);
console.log(s2.name,s2.age);
</script>
</body>
</html>
⑥混合模式创建(构造+原型)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function Student(name,age){
this.name = name;
this.age = age;
}
Student.prototype.eat = function(){
alert(this.name+'吃饭');
}
let s1 = new Student('小明',12);
let s2 = new Student('小红',13);
console.log(s1.name+s1.eat(),s1.age);
console.log(s2.name+s2.eat(),s2.age);
</script>
</body>
</html>