Skip to main content
 首页 » 编程设计

javascript之当 String 在 JavaScript 中工作时,无法在 Number 上调用声明的原型(prototype)

2024年05月10日36lvdongjie

我已经声明了两个方法。

String.prototype.hazaa = function (shazoo) { 
  return this + shazoo; 
} 
 
Number.prototype.hazaa = function (shazoo) { 
  return this + shazoo; 
} 

当我调用前者时,我得到了预期的行为。但是,调用第二个会产生以下错误。

Syntax error: Unexpected token ILLEGAL(...)

我感觉是我的 C# 风格在吓人(我在考虑扩展方法和面向对象的调用)。调用执行如下。

"abc".hazaa("shazoo"); 
12345.hazaa(00000000); 

是否有另一种语法来调用我添加的函数?我是否没有以正确的方式声明原型(prototype)添加?

是的,我做了the research但我可能遗漏了相关的一点。

请您参考如下方法:

问题是在解析 12345.hazaa(00000000); 时,它认为 hazaa 出现在数字的小数点之后,因此是意外标记。如果您将数字括在括号中,它将被正确解析和执行:

(12345).hazaa(00000000); 

它将继续对变量正常工作,因为解析已经发生:

var a = 123; 
a.hazaa(0000); 

正如 Jaromanda X 在评论中提到的,另一种允许正确解析的替代方法是使用双点语法:

12345..hazaa(00000000);