首页 > 其他分享 >ES6对Function函数类型升级优化

ES6对Function函数类型升级优化

时间:2022-09-22 11:55:51浏览次数:57  
标签:Function ES6 bar 函数 箭头 console foo

ES6对Function函数类型升级优化

优化部分

箭头函数(核心)

  1. 箭头函数内的this指向的是函数定义时所在的对象,而不是函数执行时所在的对象。ES6中函数里的this总是指向函数执行时所在的对象,这使得很多情况下this的指向变得难以理解,可以归结为语言层面的bug之一。箭头函数优化了这一点,它的内部没有自己的this,这样就导致了this总是指向上一层的this,如果上一层还是箭头函数,则继续向上指,直到指向有自己的this的函数为止,并作为自己的this;

  2. 箭头函数不能用作构造函数,因为没有this,无法实例化;

  3. 由于箭头函数没有this,所以箭头函数内也不存在arguments对象(可以用扩展运算符...代替)

函数默认赋值

在ES6之前,函数的形参是无法给默认值的,只能在内部通过变通方法实现,ES6以更简洁的方式进行函数的默认赋值。

//ES5
function add(x,y){
	const a=x||'请输入数字',
	b=y||''
	return a+b
}

//ES6
function add2(x='请输入数字',y=''){
	return x+y
}

console.log(add(1,2))
console.log(add())

console.log(add2(1,2))
console.log(add2())

  

升级部分:

ES6新增了双冒号运算符,用来取代以往的bind,call,和apply。(浏览器暂不支持,Babel已经支持转码)

foo::bar;
// 等同于
bar.bind(foo);

foo::bar(...arguments);
// 等同于
bar.apply(foo, arguments);
复制代码

  

标签:Function,ES6,bar,函数,箭头,console,foo
From: https://www.cnblogs.com/songsong072/p/16718731.html

相关文章

  • Rust-函数
    函数结构函数要点函数名和变量名使用蛇形命名法(snakecase),例如 fnadd_two()->{}函数的位置可以随便放,Rust不关心我们在哪里定义了函数,只要有定义即可每个函数......
  • 凸函数与优化
    讲的比较透彻,关于凸函数的定义、性质、在优化中的优势from: https://zhuanlan.zhihu.com/p/56876303凸函数定义一个函数 f:Rn→R 是一个凸函数,当且仅当以上两个条件......
  • TypeScript 函数重载
    函数参数的类型可以使用联合类型?,让我们传递的值可以有多种类型的情况。下面是写的一个简单函数,参数x可以有number、string两种类型,返回值也是。functionreverse(x:......
  • Python之numpy库(二)-函数
    1.算术函数  如果参与运算的两个对象都是ndarray,并且形状相同,那么会对位彼此之间进行(+-*/)运算。NumPy算术函数包含简单的加减乘除:add(),subtract(),multiply()......
  • T1051 分段函数(信息学一本通C++)
     目录 [题目描述]编写程序,计算下列分段函数y=f(x)的值。 y=-x+2.5;0<=x<5 y=2-1.5(x-3)(x-3);5<=x<10 y=x/2-1.5;10<=x<20[输入]一个浮点数N......
  • 有关损失函数推导
    损失函数推导线性回归首先损失函数是为了衡量模型预测的数据与真实数据之间的区别,那么问题来了为什么是平方损失,而不是绝对值损失,四次方损失。一个很浅显的理解:二次方简......
  • 逻辑回归函数
    SigmoidFunctionLogisticFunction:\(S(x)=\frac{1}{1+e^{-x}}\)(\(S(0)=\frac{1}{1+1}=0.5\))Hyperbolictangent\(f(x)=tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}\)......
  • const修饰成员函数,常函数,常对象
    设计关键字:const、mutable常函数:-成员函数后面加const,就是常函数-常函数里面不能修改成员变量的值-成员变量加mutable修饰,在常函数中可以修改 常对象:-声明对象......
  • 【SQL 编程你也行】SQL Server 2012新功能之函数:转换函数
    在SQLServer2012中,新增了几个转换函数,用于支持数据类型的强制转化。由于之前主要用的是SQLServer2008R2,而公司的项目为了提高开发效率,很多表的列都为varchar类型,但也......
  • MySQL索引查询条件使用函数导致索引失效
     索引失效EXPLAINSELECTdt.nameASdeviceName,su.`name`ASuserName,date_format(co.upload_time,'%Y%m%d')astimeFROMtb_cust_ordercoI......