请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

工厂模式的疑问

假如我封装好一个对象A交给同事使用,但是同事不认真看代码,没有正确的使用
const a=new A( )
a.name
而是直接使用
const a =A( )
a.name 肯定就会报错。
我想直接把new A()仍出去该怎么做?

正在回答 回答被采纳积分+3

2回答

香饽饽0 2022-02-06 08:45:33
function Person(name) {
	if (!(this instanceof Person)) {
  	throw TypeError('Person 不能作为普通函数调用');
  }
  this.name = name;
}
// Person("Hello")
new Person("Hello")


0 回复 有任何疑惑可以回复我~
双越 2020-03-10 11:15:21

你的问题,不正是工厂模式解决的吗?

0 回复 有任何疑惑可以回复我~
  • MirorXu #1
    老师,这个问题不应该是,没有使用new实例,当做普通函数调用的问题吗 ?  工厂不应该是为了生产不同的产品吗?
    回复 有任何疑惑可以回复我~ 2020-07-09 22:58:07
  • 双越 回复 MirorXu #2
    首先,工厂是为了生产出产品。其次再是生产不同的产品。
    回复 有任何疑惑可以回复我~ 2020-07-10 08:26:21
  • MirorXu 回复 双越 #3
    嗯嗯,后来琢磨了下 。感觉 document.createElement( 'xxx' ) 这个API根据参数创建不同dom对象,这个应该算是工厂的最佳实践了吧 ?
    回复 有任何疑惑可以回复我~ 2020-07-23 00:18:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信