当前位置: 首页 > Web前端 > JavaScript

[js]6种创建对象的基本方法

时间:2023-03-27 17:56:48 JavaScript

创建对象字面量newObject()工厂模式构造函数原型模式构造函数+原型模式1.literalletstudent={name:"张三",age:18,getName(){console.log(this.name);},getAge(){console.log(this.age);}}console.log(student.name);//张三student.getAge()//18在{}中添加属性和方法即可。添加属性和方法来创建类似的对象,会有很多重复的代码2.newObject()letstudent=newObject();student.name="张三"student.age=18student.getName=function(){安慰。log(this.name);}student.getAge=function(){console.log(this.age);}console.log(student.name);//张三student.getAge()//18实例化内置-在添加属性和方法创建类似对象后,会有很多代码重复3.工厂模式functioncreatStudent(name,age){letstudent=newObject()student.name=namestudent.age=agestudent.getName=function(){console.log(this.name);}student.getAge=function(){console.log(this.age);}returnstudent}letstd1=creatStudent("张三",18)letstd2=creatStudent("李四",20)std1.getName()//张三std2.getAge()//20实例化new的方法Object()给一个对象然后赋值公式写在函数里,传入不同的值作为参数,创建相似的对象。只需要传入不同的参数,既减少了代码量,又不能判断是什么对象。使用instanceof只能判断是否是对象4.构造函数Student(name,age){this.name=namethis.age=agethis.getName=function(){console.log(this.name);}this.getAge=function(){console.log(this.age);}}letstd1=newStudent("张三",18)letstd2=newStudent("李四",20)std1.getAge()//18console.log(std2instanceofStudent);//trueconsole.log(std1.getName==std2.getName);//false使用new改变构造函数的this点,创建一个新的对象,可以使用instanceof判断同类型对象的方法不能共享,创建重复的方法,并影响性能5.原型模式functionStudent(){}Student.prototype.name="张三"Student.prototype.age=18Student.prototype.getName=function(){console.log(this.name);}Student.prototype.getAge=function(){console.log(this.age);}letstd1=newStudent()letstd2=newStudent()std2.name="李四"std2.age=20std1.getName()//张三std2.getAge()//20console.log(std1.getAge==std2.getAge);//真正的共享属性和方法,可以为对象设置自己的方法,不会重建相同的方法6.构造函数+原型模式函数Student(name,age){this.name=namethis.age=age}Student.prototype={constructor:Student,getName(){console.log(this.name);},getAge(){console.log(this.age);}}letstd1=newStudent("张三",18)letstd2=newStudent("李四",20)std1.getName()//张三std2.getAge()//20console.log(std1.getAge==std2.getAge);//真正的非共享属性或方法使用构造函数或单独的append方法共享属性和方法使用原型模式

最新推荐
猜你喜欢