审核中~
溜忙之道
首页
溜忙手册
offer之道
项目Git
写文章
登录
·
注册
登录
没有账号,去注册
注册
已有账号,去登录
博客
工厂模式与私有原型对象
南易_站长
阅读量:3979
关注
工厂模式与私有原型对象
我们先来看一个通过原型创建对象的常规方式,如下: ``` let todoPrototype = { toString : function() { return this.id + " " + this.userName + ": " + this.title; } } function Todo(todo){ let newTodo = Object.create(todoPrototype); Object.assign(newTodo, todo); return newTodo; } ``` 在这个例子中,todoPrototype 原型对象是一个全局对象。 我们可以通过闭包,只用创建原型对象一次,也能够被所有 Todo 函数调用所公用,并且保证其私有性。示例如下: ``` let Todo = (function createTodoFactory(){ let todoPrototype = { toString : function() { return this.id + " " + this.userName + ": " + this.title; } } return function(todo){ let newTodo = Object.create(todoPrototype); Object.assign(newTodo, todo); return newTodo; } })(); let todo = Todo({id : 1, title: "This is a title", userName: "Cristi", completed: false }); ``` 这里,Todo() 就是一个拥有私有状态的函数。
评论
表情
发送
0
评论