javascript - 如何将方法添加到字符串,当它不可变时使用它的原型?
问题描述
String 是不可变的,这意味着我们只能读取它的属性,不能修改或创建或删除任何属性或方法。所以基本上字符串是冻结的。
我的问题是如何向字符串原型添加新方法?
var a = '';
String.prototype.hi = function(){
console.log('hi');
}
a.hi()
Output: hi
为什么它没有抛出任何错误?
解决方案
String 是不可变的,这意味着我们只能读取它的属性,不能修改或创建或删除任何属性或方法
这不是真的。字符串不可变是指字符串对象本身被冻结。这并不意味着String.prototype
作为单独对象的 被冻结。当我们向String.prototype
object添加属性时,这并不意味着我们已经改变了任何字符串。它只是另一个对象,而不是字符串本身。
推荐阅读
- dc.js - 如何使用多个值数组计算每个键的唯一值?/ DC.js - 交叉过滤器 - 还原
- c# - 断言 C# (socialable) 单元测试不使用 HTTP
- android-xml - 将布局置于一切之上
- uitabbaritem - 带有系统图像的自定义标签栏项目
- html - 如何为 flex-box 子级使用溢出文本省略号?
- angular - 如何更改占位符颜色它在里面
从角材料? - ios - 为什么此任务等待在 Xamarin iOS 中离开 UI 上下文?
- python-3.x - 各种路径样式
- python - 基于 nd 数组条件的数组
- java - 将 ArrayList 中的对象转换为字符串