js中方法的实现
将js中数组、字符串以及其他方法进行实现
mingli_2020
这个作者很懒,什么都没留下…
展开
-
数组的深拷贝
var arr1 = [2, 55, 88, 99]; function deepCopy(base) { var arr2 = []; for (var i = 0; i < base.length; i++) { arr2[i] = arr1[i]; } return arr2; } var result = deepCopy(arr1); console.log(result); //Array(4) [ 2, 55, 88,原创 2020-09-14 23:31:02 · 122 阅读 · 0 评论 -
数组遍历map的实现
map的遍历与forEach的遍历有所不同,map遍历有返回值,返回值并且在一个新数组中,而forEach并没有返回值 var arr = [2, 6, 9]; function myMap(array, cb) { var newarr = []; //创建新数组 for (var i = 0; i < array.length; i++) { newarr[i] = cb(arra.原创 2020-09-01 22:07:14 · 499 阅读 · 0 评论 -
数组遍历forEach的实现
仅将forEach遍历作为函数进行封装 var arr = [1, 6, 9, 8]; function myForEach(array, cb) { for (var i = 0; i < array.length; i++) { cb(array[i], i, array); } } myForEach(arr, function(value, index, array) { console.log(value); consol原创 2020-09-01 21:53:02 · 399 阅读 · 0 评论 -
多维数组深拷贝
多维数组深拷贝 使用递归进行深拷贝 var arr = [55, 66, [99, 66], 100]; function deepCopy (array) { var temp = []; array.forEach(function(value, index){ if(Array.isArray(value)){ temp.push(deepCopy(value)); }else{原创 2020-08-31 22:37:05 · 459 阅读 · 0 评论 -
强制改变this指向的bind实现
实现部分功能 function bind(f, thisArg) { return function() { thisArg.f = f; thisArg.f(); } } function f() { console.log(this); } bind(f, [1, 2, 3])(); 实现全部功能的版本 function bind (fn, thisArg) { if(typeof thisArg !== "ob原创 2020-08-31 22:29:58 · 155 阅读 · 0 评论