简单扩展原生JS
Simple Extending Native JS
看看下面的代码,它非常不言自明。如何修改"replaceAt"函数以获得所需结果?
String.prototype.replaceAt = function (at) {
return this.substring(0, at) + this.substring(at+1, this.length);
}
var str = "webmaster";
var x = str.replaceAt(2);
console.log(x); // should return "b"
console.log(str); // should return "wemaster"
不能,字符串是不可变的。
另一种方法是返回一个包含替换字符和新字符串的对象或数组。然后将值分别分配给变量"x"answers"str":
String.prototype.replaceAt = function (at) {
return {
x: this.substring(at+1, at),
str: this.substring(0, at) + this.substring(at+1, this.length)
}
};
var str = "webmaster";
var result = str.replaceAt(2);
var x = result.x;
str = result.str;
console.log(x);
console.log(str);
然而,利用ES6的"解构"功能,你实际上可以把它归结为一句话:
String.prototype.replaceAt = function (at) {
return [
this.substring(at+1, at),
this.substring(0, at) + this.substring(at+1, this.length)
]
};
var str = "webmaster";
[x, str] = str.replaceAt(2);
console.log(x);
console.log(str);
相关文章:
- js代码从jQuery转换为原生代码
- 如何通过JQuery触发JS原生甚至addEventListener(“change”,函数)
- Node.js Mongodb原生驱动程序连接共享
- Node.js Mongodb 原生驱动组织
- 简单扩展原生JS
- 使用角度's原生ngRoute(angular-route.js v1.3.15)
- 如何使用原生JS创建脚本的完整副本
- 原生的,比如使用 css 和 js 的导航
- 如何分发原生Windows DLL以与XUL Firefox扩展中的js-ctypes一起使用
- Chrome 开发者工具 - 控制台.log原生代码 JS
- Prototypejs $super的原生 JS 实现
- IBM Bluemix 节点.js原生承诺支持
- 最成熟的原生节点.js MySQL 驱动程序
- Meteor.js部署用于网络和移动原生应用程序,一个代码库
- 在javascript/Angular JS中安装并打开Android/ios原生应用程序
- React原生android无法加载js捆绑包:index.android.js中的更改可以'在apk中看不到
- Nodejs4.x上的ES6代码:V8 4.5是一个直接运行ES6的原生JS引擎吗
- JS原生格式日期方法
- 是 Node.js原生 Promise.all 并行或顺序处理
- Ember.js:原生输入类型="number"约束值时绑定中断