ES6 简单示例
class MyClass extends SuperClass {
constructor() {
super()
this.myProperty = 'myProperty'
}
}
在 ES7 中,前面的例子可以写成:
class MyClass extends SuperClass {
myProperty = 'myProperty'
}
在 ES6 中,我们可以像这样在构造函数中调用一个方法:
import myMethod from './myMethod'
class MyClass extends SuperClass {
constructor() {
super()
myMethod()
}
}
在 ES7 中,我们如何调用将被标记为构造函数方法的方法?
import myMethod from './myMethod'
class MyClass extends SuperClass {
myMethod()
}
语法错误:意外标记,预期 {
PS:我知道我仍然可以使用 ES6 语法。但是有没有不写构造函数的方法呢?
这是一种无需编写构造函数即可实现这一目标的可能方法,但这不是您应该做的事情 - 类字段用于分配给实例化对象的属性。如果它不是对象的属性,则应在构造函数中完成。
function myMethod() {
console.log('method running');
}
class SuperClass { }
class MyClass extends SuperClass {
someIrrelevantPropName = (myMethod(), undefined)
}
const someInstantiation = new MyClass();
请注意,这实际上将分配undefined
给someInstantiation.someIrrelevantPropName
. 也就是说,'someIrrelevantPropName' in someInstantiation
将评估为true
,因此这个逗号运算符漏洞利用并非没有副作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句