此示例来自Stimulusjs的文档。我已经能够找到有关ES6静态方法的文档,但这看起来并不像方法。还是这是一种速记?为什么变量有一个“静态”关键字?
export default class extends Controller {
static targets = [ "name" ]
greet() {
const element = this.nameTarget
const name = element.value
console.log(`Hello, ${name}!`)
}
}
答案 0 :(得分:4)
使用babel's transform-class-properties plugin时允许使用该语法。普通javascript中的等效项为:
class MyClass extends Controller {
greet() {
const element = this.nameTarget
const name = element.value
console.log(`Hello, ${name}!`)
}
}
MyClass.targets = ["name"];
export default MyClass
编辑:在ES6之前,可以通过以下方式完成
:var MyClass = function () {
Controller.call(this);
};
MyClass.prototype = Object.create(Controller.prototype);
MyClass.prototype.greet = function () {
var element = this.nameTarget
var name = element.value
console.log('Hello, ' + name + '!');
}
MyClass.targets = ["name"];