javascript中5种常用对象创建方式
文章目录
一、直接创建方式
二、对象初始化器方式
三、构造函数方法
四、prototype原型方式
五、混合的构造函数/原型方式
一、直接创建方式
1、创建语法
var 对象变量名 = new Object(); 对象变量名. property1 = value1; …; 对象变量名. propertyN = valueN; 对象变量名. methodName1 = function([参数列表]){ //函数体 } …; 对象变量名. methodNameN = function([参数列表]){ //函数体 } |
2、基础示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
var student = new Object();//直接创建对象
student.name="Tom";//定义变量
student.doHomework=function(){//定义方法
console.log(this.name+name+"@@@@@@@@@@@");
}
console.log(student.name);//输出学生姓名
student.doHomework();//调用方法
</script>
</head>
<body>
</body>
</html>
3、运行结果
二、对象初始化器方式
1、创建语法
var 对象变量名 = { property1 : value1, property2 : value2, …, propertyN : valueN, methodName1 : function([parameter_list]){ //函数体 }, …, methodNameN : function([parameter_list]){ //函数体 } }
|
2、基础示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
//对象初始化器方式
var object={
url:"",
success:function(data){
console.log(data+"自主学习");
}
};
object.success("Tom")//调用方法,并传参
</script>
</head>
<body>
</body>
</html>
3、运行结果
三、构造函数方法
1、创建语法
function 构造函数([参数列表]){ this.属性 = 属性值; … this.属性N = 属性值N; this.函数1 = function([参数列表]){ //函数体 } ; … this.函数N = function([参数列表]){ //函数体 } ; }
|
2、基础示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
<!--构造函数方式便于动态为属性赋值,但是这种方式将方法也定义在了构造方法体中,使得代码比较杂乱-->
function Student(score){
this.name="Tom";
this.score=score;
this.doHomework=function(){
console.log(this.name+"正在做作业");
}
}
var student=new Student(88);
console.log(student.score)//调用属性并输出
student.doHomework();//调用方法
</script>
</head>
<body>
</body>
</html>
3、运行结果
四、prototype原型方式
1、创建语法
function 对象构造器( ){ } 对象构造器.prototype.属性名=属性值; 对象构造器.prototype.函数名 = function([参数列表]){ //函数体 }
|
2、基础示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
<!--prototype原型方式实现了方法与属性的分离,使代码不混乱,但不能动态的给属性赋值-->
function Student(){
}
Student.prototype.name="Tom";
Student.prototype.doHomework=function(){
console.log("正在做作业")
}
var student = new Student();
student.doHomework();
</script>
</head>
<body>
</body>
</html>
3、运行结果
五、混合的构造函数/原型方式
1、创建语法
function 对象构造器([参数列表]){ } 对象构造器.prototype.函数名 = function([参数列表]){ //函数体 }
|
2、基础示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
<!--混合的构造函数/原型方式实现了方法与属性的分离,使代码不混乱,且能动态的给属性赋值-->
function Student(name){
this.name=name;//动态的给name赋值
}
Student.prototype.doHomework=function(){
console.log(this.name+"正在做作业")
}
var student = new Student("Tom");
student.doHomework();
</script>
</head>
<body>
</body>
</html>
3、运行结果