龙空技术网

JS的封装函数

精彩播客 390

前言:

而今姐妹们对“js封装数据”可能比较注重,各位老铁们都想要知道一些“js封装数据”的相关文章。那么小编同时在网摘上网罗了一些对于“js封装数据””的相关资讯,希望朋友们能喜欢,看官们一起来了解一下吧!

1.封装hasPubProperty公有属性

Object.prototype.hasPubProperty = function (key) { if ((key) in this && !this.hasOwnProperty(key)) { return true; } return false;}复制代码

2.封装myPop,去掉末尾项

Array.prototype.myPop = function () { let temp = this[this.length - 1]; this.length--; return temp; }复制代码

3.封装myUnique数组去重

Object.prototype.hasPubProperty = function (key) { var obj = {}; for (var i = 0; i < this.length; i++) { if (obj.hasOwnProperty(this[i])) { this.splice(i, 1); i--; } else { obj[this[i]] = this[i] } } }复制代码

4.封装myPop去除最后数组一项

 Array.prototype.myPop = function () { let temp = this[this.length - 1]; this.length--; return temp; }复制代码

5.封装myPush在末尾项增加

 Array.prototype.myPush = function () { var l = ary.length; for (var i = 0; i < l; i++) { this[this.length] = ary[i]; } return this; }复制代码

6.封装myCall方法等同于call

Function.prototype.myCall = function myCall(context, ...arg) { context = context || window; let a = Symbol(); context[a] = this; let res = context[a](...arg); delete context[a]; return res; }复制代码

7.封装myApply方法等同于apply

Function.prototype.myApply = function myApply(context, arg) { arg = arg || []; context = context || window; let a = Symbol(); context[a] = this; let res = context[a](...arg); delete context[a]; return res; }复制代码

8.封装myBind方法等同于bind

Function.prototype.myBind = function (context, ...arg) { var _this = this; return function (...ary) { return _this.apply(context, arg.concat(ary)) } }复制代码

9.封装myNew方法等同于new

function myNew(classN, ...arg) { var obj = {}; obj.__proto__ = Person.prototype; var res = Person.call(obj, ...arg) return typeof res === 'object' ? res : obj; }复制代码

10.封装myInstance方法等同于instanceof

function myInstance(temp, classN) { let str = typeof temp; if (str !== 'Object' && str !== 'Function') return false; var left = temp.__proto__, right = classN.prototype; while (left) { if (left === right) return true; left = left.__proto__; } return false }复制代码

11.封装plus和minus方法

Number.prototype.plus = function (a) { return this + a; }Number.prototype.minus = function (a) { return this - a; }复制代码

12.封装一个判断数据类型的方法getType

Object.prototype.getType = function () { var str = this.constructor.toString(); str = str.slice(9, str.indexOf('(')); return str.toLowerCase(); }复制代码

13.封装myReverse方法等同于reverse

Array.prototype.myReverse = function () { for (var i = 0; i < this.length / 2; i++) { let temp = this[i]; this[i] = this[this.length - 1 - i]; this[this.length - 1 - i] = temp; } return this; }复制代码

14.获取数组中的最大值

Array.prototype.max = function () { // 三种任选其一 return this.sort((a, b) => b - a)[0]; return Math.max(...this); return Math.max.apply(Math,this); }复制代码

15.求数组中的平均值

 Array.prototype.average = function(){ return eval(this.join('+'))/this.length; }

标签: #js封装数据 #什么叫封装函数