繁体   English   中英

如何期望来自ES6类构造函数的对象数据?

[英]How to expect object data from a ES6 Class constructor?

我想在构造函数中接受对象,但不确定如何做到这一点。 是否有可以使用的特殊关键字,例如constructor(obj, etc, etc) {} 另外,我将如何使用该日期。

截至目前,我已经完成了基本课程设置

class Bot {
   constructor() {

   }
}

这就是我现在所拥有的,从字面上不知道从哪里开始笑。 有研究但找不到答案。

JavaScript是松散类型的,因此您只需要执行以下操作:

class Bot {
    constructor(parameter) {
       this.parameter = parameter;
    }

    doSomething() {
        alert(this.parameter.foo);
    }
}

let instance = new Bot({foo: 'bar'});

instance.doSomething(); // Will fire an alert containing the contents of {foo}

这是一个简单的示例: https : //jsfiddle.net/edcs/8qm8sLjp/

正如@edcs所述, javascript不提供类型化机制。 那么,如果传递的数据不是Object您打算做什么? 抛出错误?

如果是这样,您可以执行以下操作:

class Bot {
    constructor(obj) {
       this.validate(obj);
       this.obj = obj;
    }

    validate(obj) {
        if (Object.prototype.toString.call(obj) !== '[object Object]') {
            throw new Error('passing data should be literal object');
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM