JavaScript扩展:字符串方法、数组去重及继承实现

需积分: 9 0 下载量 155 浏览量 更新于2024-12-27 收藏 1007B ZIP 举报
资源摘要信息: "js代码-千分位:如何给string增加方法;去重;继承" 1. 给String增加方法 在JavaScript中,可以使用原型链来给String类型增加新的方法。原型链是JavaScript的核心概念之一,允许我们向现有的对象类型添加新的属性和方法。通过扩展String的原型,我们可以为所有字符串实例添加自定义的方法。例如,可以创建一个千分位格式化的函数,方便地格式化数字字符串为更易读的形式。 示例代码如下: ```javascript // 给String原型增加一个thousandFormat方法来实现千分位格式化 String.prototype.thousandFormat = function() { return this.replace(/\B(?=(\d{3})+(?!\d))/g, ','); }; // 使用新增的thousandFormat方法 let numberStr = "1234567890"; let formattedStr = numberStr.thousandFormat(); // 输出 "1,234,567,890" ``` 2. 去重 在处理数组或集合数据时,常常需要去重。JavaScript提供了几种不同的方法来实现数组去重,包括使用`Set`对象、使用`filter`方法结合`indexOf`或`includes`方法、以及使用`reduce`方法。 示例代码如下: 使用`Set`对象去重: ```javascript let arr = [1, 2, 2, 3, 4, 4, 5]; let uniqueArr = [...new Set(arr)]; // [1, 2, 3, 4, 5] ``` 使用`filter`和`indexOf`去重: ```javascript let arr = [1, 2, 2, 3, 4, 4, 5]; let uniqueArr = arr.filter((item, index, self) => self.indexOf(item) === index); ``` 使用`reduce`方法去重: ```javascript let arr = [1, 2, 2, 3, 4, 4, 5]; let uniqueArr = arr.reduce((acc, current) => { if (acc.indexOf(current) < 0) { acc.push(current); } return acc; }, []); ``` 3. 继承 JavaScript中的继承可以通过原型链(prototype chain)、构造函数和原型的组合、或者使用ES6引入的`class`关键字来实现。继承允许一个类(或函数)获取另一个类(或函数)的属性和方法。 使用原型链实现继承的示例: ```javascript function Parent(name) { this.name = name; } Parent.prototype.sayName = function() { console.log(this.name); }; function Child(name, age) { Parent.call(this, name); // 调用父类构造函数 this.age = age; } // 继承Parent的原型属性和方法 Child.prototype = Object.create(Parent.prototype); Child.prototype.constructor = Child; let child = new Child('Alice', 12); child.sayName(); // 输出 "Alice" ``` 使用ES6类实现继承的示例: ```javascript class Parent { constructor(name) { this.name = name; } sayName() { console.log(this.name); } } class Child extends Parent { constructor(name, age) { super(name); // 调用父类的构造函数 this.age = age; } } let child = new Child('Bob', 13); child.sayName(); // 输出 "Bob" ``` 在上述代码中,`Child`类通过`extends`关键字继承了`Parent`类的属性和方法,并通过`super`关键字调用了父类的构造函数。这是ES6中推荐的继承方式,更加简洁和易于理解。 以上就是基于标题和描述所提到的知识点,具体实现细节和代码示例。需要注意的是,在实际项目中,需要根据具体需求选择合适的实现方式。例如,`Set`去重虽然简洁,但在不支持ES6的环境中可能需要polyfill。而继承方面,如果项目环境仍然需要支持IE等老旧浏览器,可能需要使用传统的构造函数和原型链组合的方式。