这部分是还没有定案的特性,很有意思,有可能在ECMAScript6中实现。
1,常亮修饰符const
2,块级作用域修饰符let,既可以修饰变量、函数,也能修饰表达式。
例:var result = let(num=10, muti=2) num * muti;
3,数组领悟:array = [value for each (variable in values) condition];
用一组符合某个条件的值来初始化数组。
例:var doubleOdds = [i*2 for each (i in numbers) if (i % 2 > 0)];//numbers是原始数组
4,解构赋值:从一组值中挑出一或多个值,然后把他们赋给独立的变量.
例:
var person = {
name: "huizi",
age: 18
}
var { name: personName, age: personAge } = person;
var [name, value] = ["color", "red"];
5,class 与 extends
class Super {}
class Sub extends Super {}
var sub = new Sub();
Sub.prototype.constructor === Sub; // ② true
sub.constructor === Sub; // ④ true
sub.__proto__ === Sub.prototype; // ⑤ true
Sub.__proto__ === Super; // ⑥ true
Sub.prototype.__proto__ === Super.prototype; // ⑦ true
可以看出extends除了有:
Sub.prototype = new Super();
Sub.prototype.constractor = Sub;
它的_proto_属性不再指向Function.prototype,而是Super了(这个没懂,大概是直接赋值的,有了原型,_proto_不用指向Function.prototype了)。
结论:extends子类和父类,子类原型和父类原型都是通过_proto_连接的。
1,常亮修饰符const
2,块级作用域修饰符let,既可以修饰变量、函数,也能修饰表达式。
例:var result = let(num=10, muti=2) num * muti;
3,数组领悟:array = [value for each (variable in values) condition];
用一组符合某个条件的值来初始化数组。
例:var doubleOdds = [i*2 for each (i in numbers) if (i % 2 > 0)];//numbers是原始数组
4,解构赋值:从一组值中挑出一或多个值,然后把他们赋给独立的变量.
例:
var person = {
name: "huizi",
age: 18
}
var { name: personName, age: personAge } = person;
var [name, value] = ["color", "red"];
5,class 与 extends
class Super {}
class Sub extends Super {}
var sub = new Sub();
Sub.prototype.constructor === Sub; // ② true
sub.constructor === Sub; // ④ true
sub.__proto__ === Sub.prototype; // ⑤ true
Sub.__proto__ === Super; // ⑥ true
Sub.prototype.__proto__ === Super.prototype; // ⑦ true
可以看出extends除了有:
Sub.prototype = new Super();
Sub.prototype.constractor = Sub;
它的_proto_属性不再指向Function.prototype,而是Super了(这个没懂,大概是直接赋值的,有了原型,_proto_不用指向Function.prototype了)。
结论:extends子类和父类,子类原型和父类原型都是通过_proto_连接的。