亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

1.封裝hasPubProperty公有屬性

Object.prototype.hasPubProperty = function (key) {
 if ((key) in this && !this.hasOwnProperty(key)) {
 return true;
 }
 return false;
}
復(fù)制代碼

2.封裝myPop,去掉末尾項(xiàng)

Array.prototype.myPop = function () {
 let temp = this[this.length - 1];
 this.length--;
 return temp;
 }
復(fù)制代碼

3.封裝myUnique數(shù)組去重

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]
 }
 }
 }
復(fù)制代碼

4.封裝myPop去除最后數(shù)組一項(xiàng)

 Array.prototype.myPop = function () {
 let temp = this[this.length - 1];
 this.length--;
 return temp;
 }
復(fù)制代碼

5.封裝myPush在末尾項(xiàng)增加

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

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;
 }
復(fù)制代碼

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;
 }
復(fù)制代碼

8.封裝myBind方法等同于bind

Function.prototype.myBind = function (context, ...arg) {
 var _this = this;
 return function (...ary) {
 return _this.apply(context, arg.concat(ary))
 }
 }
復(fù)制代碼

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;
 }
復(fù)制代碼

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
 }
復(fù)制代碼

11.封裝plus和minus方法

Number.prototype.plus = function (a) {
 return this + a;
 }
Number.prototype.minus = function (a) {
 return this - a;
 }
復(fù)制代碼

12.封裝一個(gè)判斷數(shù)據(jù)類型的方法getType

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

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;
 }
復(fù)制代碼

14.獲取數(shù)組中的最大值

Array.prototype.max = function () {
 // 三種任選其一
 return this.sort((a, b) => b - a)[0];
 return Math.max(...this);
 return Math.max.apply(Math,this);
 }
復(fù)制代碼

15.求數(shù)組中的平均值

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

分享到:
標(biāo)簽:封裝 函數(shù) JS
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定