javascript - 如何在 TypeScript 中通过添加类似 ++ 的函数来扩展 Number
问题描述
我想扩展Number
一个plusPlus2
将数字增加 2 的函数。
问题是我不知道如何将结果分配回扩展函数中的数字。就像是:
Number.prototype.plusPlus2 = function() {
this = this + 2;
}
用法是:
x = 1;
x.plusPlus2(); // expect x to be 3
解决方案
基元(数字、字符串、布尔值)在 javascript 中是不可变的。
因此,无论何时更改原语,都需要将其分配给另一个变量(甚至将其重新分配给它自己)。
话虽这么说,你不能做你建议的事情,你需要返回一个新值,包含你想要的值,比如说:
Number.prototype.plusplus2 = function() {
return this + 2;
}
然后重新分配它:
let x = 5;
x = x.plusplus2();
然后,您可能想知道:如何x++
工作?
答案是,x++
是 的语法糖x = x + 1
,这意味着,实际上,您并没有更改x
,而是将 1 添加x
到自身并将其重新分配给自身。
推荐阅读
- python - gunicorn 由于信号 9 和信号项而终止
- google-bigquery - 加入前修剪与加入后修剪与加入期间修剪
- ios - 热重载在 Visual Studio for Mac 8.10.10(内部版本 8)中不起作用。试图创建一个新项目但也不起作用
- javascript - beforeunload 事件中的同步 ajax 请求替代支持 Edge chromium
- php - 如何在 null 上修复对成员函数 isAdmin() 的调用
- javascript - 使用 facebook 图形 API 时出现 CORS 错误
- c - openmp threadprivate 和 gcc __thread 兼容性
- android - 查看 Renderable build 导致程序崩溃
- mysql - 如何在sql中的数据库中获取记录的日期和未记录的日期
- javascript - 有没有办法在不涉及 Web API 的情况下编写异步代码/函数?