相关疑难解决方法(0)

使用动态名称在ES6中创建类的实例?

我希望能够通过将字符串变量传递给函数来实例化特定的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)

javascript class dynamic ecmascript-6

39
推荐指数
2
解决办法
4万
查看次数

javascript中的"属性描述必须是对象"错误.无法理解为什么:(

使用此代码我有这个问题:

    $.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行.

oop jquery

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

class ×1

dynamic ×1

ecmascript-6 ×1

javascript ×1

jquery ×1

oop ×1