我有一个函数{
Value: "123",
Neg: false,
Exp: 3
}
,它返回一个类似于:
class MyClass {
constructor(val) {
{
Value: this.Value
Neg: this.Neg
Exp: this.Exp
} = ValidateInteger(val);
}
}
我还有一个调用此函数的类:
this
正如您所看到的,this.{Value, Neg, Exp} = ValidateInteger(val);
已经有了相当多的重复。
我的问题是有一些更好的语法来执行此操作,例如:
<?php
global $wpdb;
$keyword ="apple";
$keyword = $wpdb->esc_like( $keyword );
$keyword = '%' . $keyword . '%';
$sql = $wpdb->get_results($wpdb->prepare("SELECT id FROM mytable WHERE keyword LIKE %s"),$keyword);
print_r($sql);
?>
肯定应该有更好的语法。
答案 0 :(得分:5)
我想你想要Object.assign
。它可用于将可枚举属性的值从某些对象复制到另一个对象。
Object.assign(this, ValidateInteger(val));
var ValidateInteger = val => ({
Value: "123",
Neg: false,
Exp: 3
});
class MyClass {
constructor(val) {
Object.assign(this, ValidateInteger(val));
}
}
document.write('<pre>' + JSON.stringify(
new MyClass() // MyClass { Value: "123", Neg: false, Exp: 3 }
, null, 2) + '</pre>');