箭头函数的使用 箭头函数的特性 call,applay bind 的区别

一.箭头函数的使用

***1.箭头函数提供了一种更加简洁的函数书写方式。基本语法是:

参数 => 函数体


基本用法:

var f = v => v;
//等价于
var f = function(a){
 return a;
}
f(1);  //1

注意:

1.当箭头函数没有参数或者有多个参数,要用 () 括起来。
2. 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。
3.当箭头函数要返回对象的时候,为了区分于代码块,要用 () 将对象包裹起来
4.注意点:没有 this、super、arguments 和 new.target 绑定。
5. 箭头函数体中的 this 对象,是定义函数时的对象,而不是使用函数时的对象。

4.示例`

var func = () => {
  // 箭头函数里面没有 this 对象,
  // 此时的 this 是外层的 this 对象,即 Window 
  console.log(this)
}
func(55)  // Window 
 
var func = () => {    
  console.log(arguments)
}
func(55);

二.箭头函数的特性

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

三.call,applay bind 的区别.

1.applay、call、bind他们三个都能改变函数this的指向问题;
2.applay、call这两个方法的主动调用,bind返回的是改变this指向后的新函数;
3.传参的问题区别,call和bind都是直接传递参数,applay传递的是数组

示例

	var name = '小王',age = 17;
		var obj = {
			name:'宿舍',
			obj2:{
				name:"昂啊",
				age:99
			},
			objAge:this.age,
			myFun:function(...a){
				// let a = [...arguments];
				console.log(`${this.name}--年龄--${this.age}---${a}`);
			},
		}
		let obj1 = {
			name:"丧失",
			age:3
			}
		// 如何实现call的原理
		// call(指向的对象,传入的值1,2...)
		Function.prototype.callFun = function(content,...a){
			if(!content||content==null||content==undefined){
				content = window;
			}
			let fn = Symbol();
			content[fn] = this;
			return content[fn](...a);
		}
		// obj.myFun.call()
		obj.myFun.callFun(obj1,"马上下课","吃饭了");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值