es6中箭头函数 原型

箭头函数 特性

箭头函数的特性

复制代码
	不绑定arguments,用rest参数...解决
	本身没有this的概念,捕获其所在上下文的 this 值
	作为自己的 this 值,this指向全局
	箭头函数不能使用new(会报错)
	箭头函数没有原型属性(prototype)
	箭头函数不能当做Generator函数,不能使用yield关键字
	箭头函数不能换行
	箭头函数有constructor、length属性
	箭头函数可以立即执行

改变this指向的方法有哪些

1)

在指定位置定义this存为变量

2)

使用箭头函数

3)

使用setTimeout

4)

使用call()方法

5)

使用bind()方法

6)

使用applay()方法

call(),bind(),apply()区别

1.apply、call、bind他们三个都能改变函数this的指向问题;

2.apply、call这两个方法的主动调用,bind返回的是改变this指向后的新函数;

3.传参的问题区别,call和bind都是直接传递参数,apply传递的是数组

html 复制代码
Function.prototype.callNew = function(content,...sum){
			console.log(!content);
			if(!content|| context === null|| context === undefined){
				context = window;
			}
			let fn = Symbol();
			content[fn] = this;
			return content[fn](...sum);
		}

深拷贝

html 复制代码
function deepClone(obj){
		let objClone = Array.isArray(obj)?[]:{};
			if(obj && typeof obj==="object"){
		for(key in obj){
		 			if(obj.hasOwnProperty(key)){
		 				//判断ojb子元素是否为对象,如果是,递归复制
		 				if(obj[key]&&typeof obj[key] ==="object"){
		 					objClone[key] = deepClone(obj[key]);
		 				}else{
		 					//如果不是,简单复制
		 					objClone[key] = obj[key];
		 				}
		 			}
		 		}
		 	}
		 	return objClone;
		 }    
		 let a=[1,2,3,4],
		 b=deepClone(a);
		 a[0]=2;
		 console.log(a,b);

原型

html 复制代码
方法一:
		// 	Array.prototype.shifts = function(){
		// 	for(var i=0;i<this.length-1;i++){
		// 		this[i] = this[i+1];
		// 	}
		// 	this.length = this.length-1;
		// }
		// var arr = [11,22,33];
		// arr.shifts();
		// console.log(arr);
		
复制代码
方法二:
	// Array.prototype.unshifts = function(user){
	// 	this.length = this.length+1;
	// 	for(var i=this.length-1;i>=0;i--){
	// 		this[i] = this[i-1];
	// 	}
	// 	this[0] = user;
	// }
	// var arr = [11,22,33];
	// arr.unshifts(44);
	// console.log(arr);

原型查找机制

  1. 当访问一个对象的属性或方法时,首先查找这个对象自身有没有
  2. 如果没有就查找它的原型(也就是 _ _ proto _ _指向的prototype 原型对象 )
  3. 如果还没有找到就查找原型对象的原型(Object的原型对象)
  4. 依次类推一直找到Object为止( null )
  5. _ _ proto _ _ 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条线路
相关推荐
donecoding17 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
风骏时光牛马17 小时前
Raku正则匹配与数据批量处理实操案例
前端
nbwenren17 小时前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川17 小时前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
Linsk17 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
当时只道寻常17 小时前
浏览器文本复制到剪贴板:企业级最佳实践
javascript
jinanwuhuaguo17 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
广州华水科技17 小时前
深度测评2026年单北斗GNSS位移监测系统推荐,与高口碑变形监测设备一同引领行业新风尚
前端
Alice-YUE18 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript