js 创建对象的几种模式
Posted 护花使者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 创建对象的几种模式相关的知识,希望对你有一定的参考价值。
工厂模式
function createPerson(name, age) { let o = new Object(); o.name = name o.age = age o.say = function() { console.log("name", this.name, "age", this.age); } return o } let object1 = createPerson(‘n1‘, ‘a1‘); let object2 = createPerson(‘n2‘, ‘a2‘); object1.say(); object2.say();
调用这个工厂函数,传递name和age每次都会返回一个包含两个属性和一个方法的对象
构造函数
function Person(name, age) { this.name = name; this.age = age; this.say = function () { console.log("name", this.name, "age", this.age); } } let p1 = new Person(‘n1‘, ‘a1‘); let p2 = new Person(‘n2‘, ‘a2‘); p1.say(); p2.say();
可以看到构造函数之中其实没有return返回一个对象的。但是这些都是使用new操作符后自动有些操作。
(1)创建一个新对象
(2)这个新对象会绑定到函数调用的this
(3)对象返回
原型模式
function Person() { } Person.prototype.name = ‘name‘ Person.prototype.age = ‘age‘ Person.prototype.say = function () { console.log(this.name, this.age); } let p = new Person() p.say();
使用原型的好处是可以让所有的实例对象共享它所包含的属性和方法,不必在构造函数中定义对象实例信息。
以上是关于js 创建对象的几种模式的主要内容,如果未能解决你的问题,请参考以下文章
js - 创建对象的几种方式(工厂模式构造函数模式原型模式)
[ES6] js创建对象的几种方法 字面式创建对象 工厂模式 构造函数模式 prototype __ proto __ 对象访问机制