有没有办法在 JavaScript 中代理对属性的调用?

jsl*_*oop 1 javascript

我想在 JavaScript 中向 string 添加一个 count 属性,该属性在内部调用 length 属性。我不想将其添加为函数。这该怎么做?

"abc".count;  // 3
Run Code Online (Sandbox Code Playgroud)

Ali*_*dov 5

你可以尝试这样做:

Object.defineProperty(String.prototype, 'count', {
  get: function() { return this.length; }
});

console.log(
  "abc".count // 3
)
Run Code Online (Sandbox Code Playgroud)

但我建议您避免在 JS 中扩展现有对象。你可以在这里阅读更多关于它的信息