js原型函数 原型链

72 阅读1分钟
首先弄懂原型函数的定义:一个构造函数的原型对象上的属性或方法会被这个构造函数的实例所继承。那么就将其称之为原型函数  
用prototype属性可以向构造函数添加可继承的属性和方法
1、创建数组foreach方法的原型函数:
Array.prototype.forEach1 = function (callback) {
        for (let i = 0; i < this.length; i++) {
            callback(this[i], i)
        }
    }
2、创建数组every方法的原型函数:
    Array.prototype.every1 = function (callback) {
        for (let i = 0; i < this.length; i++) {
            let isTrue = callback(this[i], i)
            if (!isTrue) return false
        }
        return true
    }
3、创建数组filter方法的原型函数:
     Array.prototype.filter1 = function (callback) {
        let res = []
        for (let i = 0; i < this.length; i++) {
            let isTrue = callback(this[i], i)
            if (isTrue)
                res.push(this[i])
        }
        return res  
    }
 4、创建数组find方法的原型函数:
    Array.prototype.find1 = function (callback) {
        for (let i = 0; i < this.length; i++) {
            let isTrue = callback(this[i], i)
            if (isTrue) return this[i]
        }
    }
 5、创建数组map方法的原型函数:
 Array.prototype.map1 = function (callback) {
        let res = []
        for (let i = 0; i < this.length; i++) {
            let obj = callback(this[i], i)
            res.push(obj)
        }
        return res
    }
  6、创建数组some方法的原型函数:
    Array.prototype.some1 = function (callback) {
        for (let i = 0; i < this.length; i++) {
            let isTrue = callback(this[i], i)
            if (isTrue) {
                return true
            }
        }
        return false
    }