我希望能够通过将字符串变量传递给函数来实例化特定的ES6类.根据变量的值,将创建一个不同的类.
示例 - 我有2个类ClassOne,ClassTwo.我希望能够将变量传递给函数并返回一个新类.类的名称将与变量相关 - 例如.传球'Two'将创造ClassTwo.
我不希望只用一个switch条款是这样的:
function createRelevantClass( desiredSubclassName )
{
let args = [],
newClass;
switch( desiredSubclassName )
{
case 'One' :
newClass = new ClassOne(args);
break;
case 'Two' :
newClass = new ClassTwo(args);
break;
}
return newClass;
}
Run Code Online (Sandbox Code Playgroud)
相反,我想以某种方式能够使用变量名创建构造函数调用.那可能吗?
function createRelevantClass( desiredSubclassName )
{
// desiredSubclassName would be string 'One' or 'Two'
// how to use the 'new' operator or Reflect here to create the …Run Code Online (Sandbox Code Playgroud) 使用此代码我有这个问题:
$.fn.dxwShow = function (options) {
console.log(typeof(options));
dxwShowSetOptions(options);
setInterval(function(){
dxwShowChange();
}, dxwShowOptions.time);
};
var dxwShowOptions = {
"transition" : "SlideToggle",
"time": 1000
};
var dxwShowStatus = {
current : 0
};
function dxwShowSetOptions(options){
console.dir(typeof(options));
dxwShowOptions = Object.create(dxwShowOptions, options);
}
function dxwShowChange(){
console.log(dxwShowOptions);
};
$(function(){
options = {
"time": 700,
"debug" : true
};
$("#dxwShow").dxwShow(options);
});
Run Code Online (Sandbox Code Playgroud)
我想更新dxwShowOptions,所以我使用Object.create首先传递我想要复制的对象,因此包含新参数的对象.哪里出错了?
PS:Chrome说该对象位于Object.create行.