javascript如何对象创建?有哪几种方式

it2022-05-08  11

文章目录

一、直接创建方式1.语法2.实例 二、对象初始化器方式1.语法2.实例 三、构造函数方法1.语法2.实例 四、prototype原型方式1.语法2.实例 五、混合的构造函数/原型方式1.语法2.实例

一、直接创建方式

1.语法

var 对象变量名 = new Object();//直接通过new的方法创建一个对象 对象变量名. property1 = value1;//propertyN为对象中的变量名;//可随意定义多个变量 对象变量名. propertyN = valueN; 对象变量名. methodName1 = function([参数列表]){ //函数体 }; 对象变量名. methodNameN = function([参数列表]){ //函数体 }

2.实例

<script> var student = new Object(); student.name = "Tom";//直接给对象中的元素赋值 student.doHomework = function(){//直接给对象中的方法写方法 console.log(this.name+"...doHomework....");//this指代的是调用doHomework方法的对象,调用该对象的名字 } student.doHomework();//直接调用对象中的方法 </script>

二、对象初始化器方式

1.语法

var 对象变量名 = {//定义一个对象 property1 : value1,//对对象中的变量进行赋值(即初始化) property2 : value2,, propertyN : valueN,//变量和方法名和背后赋值部分用:间隔 methodName1 : function([parameter_list]){ //函数体 },, //不同变量和方法体之间用逗号间隔 methodNameN : function([parameter_list]){ //函数体 } }

2.实例

<script> var student = { name : "Tom",//给变量赋值 doHomework : function(){ console.log(this.name + "...doHomework..."); } }; student.doHomework(); </script>

三、构造函数方法

该方法创建对象能节省代码

1.语法

function 构造函数([参数列表]){ this.属性 = 属性值;this.属性N = 属性值N; this.函数1 = method1;this.函数N = methodN; } function method1([参数列表]){ //函数体 } … function methodN([参数列表]){ //函数体 } 或(一般用下面这种,比较节省代码) function 构造函数([参数列表]){ this.属性 = 属性值; //this不能省略this.属性N = 属性值N; this.函数1 = function([参数列表]){ //函数体 } ;this.函数N = function([参数列表]){ //函数体 } ; }

2.实例

<script> function Student(name){//定义一个函数 this.name = name; //this.name = "Tom";如果不传入name的值,可以直接赋值 this.doHomework = function(){ console.log(this.name+"...doHomework..."); } } var student = new Student("Tom");//创建一个对象,将name的值传入 student.doHomework();//调用对象中的方法 </script>

四、prototype原型方式

在声明一个新的函数后,该函数(在JavaScript中,函数也是对象)就会拥有一个prototype的属性,通过该属性可以为该函数(对象)添加新的属性和方法。 缺点:不便于为属性动态赋值

1.语法

function 对象构造器( ){ } 对象构造器.prototype.属性名=属性值; 对象构造器.prototype.函数名 = function([参数列表]){ //函数体 }

2.实例

<script> function Student(){ //定义一个空的新的函数,即一个新的“对象” } Student.prototype.name="Tom";//原型式必须用prototype给变量即函数赋值 Student.prototype.doHomework = function(){ console.log(this.name+"...doHomework..."); } var student = new Student();//创建对象 student.doHomework();//调用方法 </script>

五、混合的构造函数/原型方式

构造函数方式:便于动态为属性赋值,但是这种方式将方法也定义在了构造方法体中,使得代码比较杂乱 原型方式:不便于为属性动态赋值,但是这种方式定义的属性和方法实现了分离 所以取长补短——构造函数定义属性,原型方式定义方法。

1.语法

function 对象构造器([参数列表]){ } 对象构造器.prototype.函数名 = function([参数列表]){ //函数体 }

2.实例

<script> function Student(name){ this.name = name;//定义一个新的函数,用函数式为变量赋值 } Student.prototype.doHomework = function(){ console.log(this.name+"...doHomework...");//使用原型式丰富方法 } var student = new Student("Tom");//创建对象,将变量值传入 student.doHomework();//调用方法 </script>

3.以上五种类型执行结果都为


最新回复(0)