首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
ES6里class杂乱随笔
】的更多相关文章
ES6里class杂乱随笔
这是一篇乱七八糟的随笔.class是ES6新增的特性,用于解决JavaScript没有类的困惑. --杂谈 ES5及之前,类都是用函数来替代,包括实例. 如: 1 function Person(name) { 2 // this指向实例 3 this.name = name 4 this,,log = function () { 5 console.log('name is ' + name) 6 } 7 } 8 9 // 或者 10 Person.prototype.changeName =…
进阶路上有你我-相互相持篇之ES6里箭头函数里的this指向问题
首先复习下普通函数里的this指向: function test(){ console.log(this) } test() 你会秒杀的毫无疑问的回答:window,针对普通函数:谁调用了函数 函数里的this就指向谁,test()等价于window.test(),所以是window var name="outername" var o={ name:"innername", getname:function(){ console.log(this.name) }…
es6里class类
/** * Created by issuser on 2018/11/27. *///如果静态方法包含this关键字,这个this指的是类,而不是实例./** (1)类的实例属性 1.类的实例属性可以用等式,写入类的定义之中. class MyClass { myProp = 42; constructor() { console.log(this.myProp); // 42 } }* */class Foo { static bar () { this.baz(); } static ba…
ES6里关于类的拓展(一)
大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性. 一.ES5近似结构 在ES5中没有类的概念,最相近的思路是创建一个自定义类型:首先创建一个构造函数,然后定义另一个方法并赋值给构造函数的原型 function PersonType(name) { this.name = name; } PersonType.prototype.s…
ES6里关于作用域的拓展:块级作用域
过去,javascript缺乏块级作用域,var声明时的声明提升.属性变量等行为让人困惑.ES6的新语法可以帮助我们更好地控制作用域. 一.var声明 1.变量提升:var声明会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined function getValue(condition){ if(condition){ var value = 'blue'; return value; }else{ //此处可访问变量value,值为undefined return null;…
ES6里关于函数的拓展(三)
一.箭头函数 在ES6中,箭头函数是其中最有趣的新增特性.顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,但是它与传统的JS函数有些许不同,主要集中在以下方面: 1.没有this.super.arguments和new.target 绑定箭头函数中的this.super.arguments和new.target这些值由外围最近一层非箭头函数决定 2.不能通过new关键字调用 箭头函数没有[[construct]]方法,不能被用作构造函数,如果通过new关键字调用箭头函数,程序抛出错误…
ES6里关于函数的拓展(二)
一.构造函数 Function构造函数是JS语法中很少被用到的一部分,通常我们用它来动态创建新的函数.这种构造函数接受字符串形式的参数,分别为函数参数及函数体 var add = new Function("first", "second", "return first + second"); console.log(add(, )); ES6增强了Function构造函数的功能,支持在创建函数时定义默认参数和不定参数.唯一需要做的是在参数名后添…
ES6里关于模板字面量的拓展
JS 的字符串相对其他语言来说功能总是有限的,事实上,ES5中一直缺乏许多特性,如多行字符串.字符串格式化.HTML转义等.ES6通过模板字面量的方式进行了填补,模板字面量试着跳出JS已有的字符串体系,通过一些全新的方法来解决类似的问题. 一.基本用法 模板字面量是增强版的字符串,它用反引号(`)标识 二.多行字符串 自javascript诞生起,开发者们就一直在寻找一种能创建多行字符串的方法.如果使用双引号或单引号,字符串一定要在同一行才行 1.反斜杠 由于javascript长期以来一直存在…
es6里面的arr方法
es6里面,关于arr的遍历以及查找,新增了很多的方法,对于不同的应用场景,运用合适的方法,可以达到事半功倍的效果: 一, arr.find():用于查找到符合条件的第一个成员,如果没有查找到的话,则返回undefined: var arr = [1,2,3,-4,-2,9]; arr.find(item => item < 0) ; ---- -4 arr.find(item => item > 10); -----undefined 二, arr.findIndex():用于查…
ES6里新添加了两个很好用的东西,set和Array.from。
set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目. 在这我们可以看见,重复的项目已经被去掉了,包括NaN.正常情况下,NaN === NaN 返回的是false,但是在set里,一样能够帮你去重,厉害了. 但是这里大家可以看到,set返回的是一个对象,但是我们想要的是数组啊. 这回,就该轮到Array.from出场了,它的作用,就是可以把类数组对象.可迭代对象转化为数组. 这回我们再看,已经变成数组了. 这样一来,就用上面的一段代码就可以实现数组去重了,是不是…