文章插图
1.工厂模式function Person(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){alert(this.name); }; return o; }var person = Person("Greg", 27, "Doctor");person.sayName();// Greg工厂模式虽然解决了创建多个相似对象的问题 , 但却没有解决对象识别的问题(即不能知道一个对象的类型)2.构造函数模式function Person(name, age, job){this.name = name; this.age = age; this.job = job; this.sayName = function(){ alert(this.name); }; } var person = new Person("Greg", 27, "Doctor");person.sayName();// Greg 构造函数始终都应该以一个大写字母开头 , 而非构造函数则应该以一个小写字母开头 3.原型模式function Person(){}Person.prototype.name = "Nicholas";Person.prototype.age = 29;Person.prototype.job = "Software Engineer"; Person.prototype.sayName = function(){alert(this.name);};var person = new Person(); person.sayName();//Nicholas对于原型模式理解就是 , 每个函数都有一个 prototype(原型)属性 , 这个属性是一个指针 , 指向一个对象 , 而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法 。4.直接创建一个 Object 的实例var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer";person.sayName = function(){ alert(this.name); }; person.sayName();//Software Engineer5.通过”字面量“方式创建var person = { name: "Nicholas", age: 29, job: "Software Engineer",sayName: function(){ alert(this.name); } }; person.sayName();//Nicholas6.定义 class 类的方式class Person{ constructor(name,age){ this.name = name; this.age = age; } sayName(){ alert(this.name) }};var person = new Person('Nicholas');person.sayName();//Nicholas
【javascript 创建对象常用几种方式】
推荐阅读
- JavaScript轻应用PWA实践全过程
- 8 个提高 JavaScript 性能的方法
- eclipse下创建Maven风格的java项目
- 修改账号来了,还能创建单人聊?微信里这些功能我都不知道
- JS怎么把对象进行ASCII码排序?
- JavaScript获取json中key所对应的value值的简单方法
- JS中轻松遍历对象属性的几种方式
- JavaScript中执行上下文和执行栈
- 不可不知的 5 种 JavaScript 代码编辑器
- Java对象头