用作构造函数的Javascript函数参数
我试图用更少的代码来实现一个可重用的模块。像这样的东西行吗?(好吧,不是真的有用,这只是一个给你提供想法的例子) 该参数实际上是一个字符串。因此,如果我通过了“FooBar”,将创建一个用作构造函数的Javascript函数参数,javascript,Javascript,我试图用更少的代码来实现一个可重用的模块。像这样的东西行吗?(好吧,不是真的有用,这只是一个给你提供想法的例子) 该参数实际上是一个字符串。因此,如果我通过了“FooBar”,将创建一个FooBar对象 就像说: var test = function('FooBar') { var bar = new 'FooBar'(); } 还有其他适合我所寻找的解决方案的优雅方式吗 非常感谢 如果foo是一个构造函数,那么你的代码就可以正常工作(我很好奇你为什么不试试)。您可以看到它在这里工
FooBar
对象
就像说:
var test = function('FooBar') {
var bar = new 'FooBar'();
}
还有其他适合我所寻找的解决方案的优雅方式吗
非常感谢 如果
foo
是一个构造函数,那么你的代码就可以正常工作(我很好奇你为什么不试试)。您可以看到它在这里工作:
如果你想就解决问题的其他/更好的方法提出建议,你必须备份并描述更多关于你真正想做的事情
有其他方法可以做类似的事情,比如工厂函数或单个函数检查它的参数以决定要创建哪种类型的对象,但是如果没有更多关于您试图解决的问题的确切信息,我们就无法确定其他方法是否比您已有的方法更好/更差
此方法的一个缺点是不允许将任何参数传递给构造函数。我将使用Douglas Crockford的方法
var booze = {
beer:'ale',
wine: 'pinot noir'
}
//test(X)
var createObject = function(o){
function F () {}
F.prototype = o
return new F()
}
var test = function () {
var x = createObject(booze)
return x;
}
test()
只要
foo
是一个函数,它就可以正常工作。你是否看到了其他情况?你能告诉或解释一下你到底想要什么吗。对不起,我的错。
var booze = {
beer:'ale',
wine: 'pinot noir'
}
//test(X)
var createObject = function(o){
function F () {}
F.prototype = o
return new F()
}
var test = function () {
var x = createObject(booze)
return x;
}
test()