javascript - 在类装饰器中访问此上下文

标签 javascript

我的装饰器

function vote(target) {
  target.vote = (val = '') => {
    console.log(target.name + val);
  }
}


class Cat {
  @vote
  name = 'britanik';
  meow() { return `${this.name} says Meow!`}
}
let garfield = new Cat();

garfield.vote('please .....');

但是 target.name 未定义 为什么?

最佳答案

将 target.vote 设为普通函数,它应该可以正常工作。

   function vote(target) {
  target.vote = function(val=""){
    console.log(this.name + val);
  };
}

class Cat {
  @vote name = "britanik";
  meow() {
    return `${this.name} says Meow!`;
  }
}
let garfield = new Cat();
garfield.vote("please .....");

关于javascript - 在类装饰器中访问此上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51891302/

相关文章:

javascript - 如何打开文件系统: from a link中的文件

javascript - 制作倒计时时钟

javascript - 带有 location.href 的按钮在 Firefox 中不起作用

javascript - 如何修复 JavaScript 中的 "Unterminated regular expression literal"错误?

javascript - 为什么我的子类不从 Javascript 中的父类继承属性?

javascript - 从自调用嵌套函数引用成员变量

javascript - 无法绘制不同形状的 div

javascript - 将 JSON 数组与 jQuery 相结合

javascript - 在服务器端node.js中使用reactJS时无法识别“<”

JavaScript 使用程序集名称直接调用 C# web 服务方法