±à¼ÍƼö: |
±¾ÎÄÀ´×Ôwww.cnblogs.com£¬ÎÄÕÂÊʺϸÕÈëÃŵÄС»ï°é£¬Ö÷Òª½²½âÁ˱äÁ¿£¬º¯ÊýʹÓã¬Ä£¿é£¬½âÎö½á¹¹µÈ·½Ã棬ÏêÇéÇë¿´ÏÂÎÄ¡£ |
|
Ò»¡¢ÐµıäÁ¿ÉùÃ÷·½Ê½ let/const
Óëvar²»Í¬£¬ÐµıäÁ¿ÉùÃ÷·½Ê½´øÀ´ÁËһЩ²»Ò»ÑùµÄÌØÐÔ£¬ÆäÖÐ×îÖØÒªµÄÁ½¸öÌØÐÔ¾ÍÊÇÌṩÁ˿鼶×÷ÓÃÓòÓë²»Ôپ߱¸±äÁ¿ÌáÉý¡£
ͨ¹ý2¸ö¼òµ¥µÄÀý×ÓÀ´ËµÃ÷ÕâÁ½µã¡£
{
let a = 20;
}
console.log(a); // a is not defined |
¶øÕâ¸ö¼òµ¥µÄÀý×Ó£¬»á±»±àÒëΪ£º
{
let _a = 20;
}
console.log(a); // a is not defined
// ES5
console.log(a); // undefined
var a = 20; // ES6
console.log(a); // a is not defined
let a = 20;
|

±äÁ¿ÌáÉýdemoʾÀý
µ±È»£¬ÄãµÄ´úÂë±àÒë³ÉΪÁËES5Ö®ºó£¬ÈÔÈ»»á´æÔÚ±äÁ¿ÌáÉý£¬Òò´ËÕâÒ»µãÖ»ÐèÒªÎÒÃǼÇס¼´¿É¡£ÔÚʵ¼ÊʹÓÃÖУ¬Ò²ÐèÒª¾¡Á¿±ÜÃâʹÓñäÁ¿ÌáÉýµÄÌØÐÔ´øÀ´µÄ¸ºÃæÓ°Ïì¡£Ö»ÓÐÔÚÃæÊÔÌâÖУ¬²Å»á¶Ô±äÁ¿ÌáÉý²»Í£µÄÀÄÓá£
ʹÓÃES6£¬ÎÒÃÇÐèÒªÈ«ÃæÊ¹ÓÃlet/constÌæ»»var£¬ÄÇôʲôʱºòÓÃlet£¬Ê²Ã´Ê±ºòÓÃconst¾Í³ÉΪÁËÒ»¸ö´ó¼ÒÒªÊìÁ·Çø·ÖµÄÒ»¸ö֪ʶµã¡£
ÎÒÃdz£³£Ê¹ÓÃletÀ´ÉùÃ÷Ò»¸öÖµ»á±»¸Ä±äµÄ±äÁ¿£¬¶øÊ¹ÓÃconstÀ´ÉùÃ÷Ò»¸öÖµ²»»á±»¸Ä±äµÄ±äÁ¿£¬Ò²¿ÉÒÔ³ÆÖ®Îª³£Á¿¡£
µ±ÖµÎª»ù´¡Êý¾ÝÀàÐÍʱ£¬ÄÇôÕâÀïµÄÖµ£¬¾ÍÊÇÖ¸Öµ±¾Éí¡£
¶øµ±Öµ¶ÔÓ¦µÄΪÒýÓÃÊý¾ÝÀàÐÍʱ£¬ÄÇôÎÒÕâÀï˵µÄÖµ£¬Ôò±íʾָÏò¸Ã¶ÔÏóµÄÒýÓá£ÕâÀïÐèҪעÒ⣬ÕýÒòΪ¸ÃֵΪһ¸öÒýÓã¬Ö»ÐèÒª±£Ö¤ÒýÓò»±ä¾Í¿ÉÒÔ£¬ÎÒÃÇÈÔÈ»¿ÉÒԸıä¸ÃÒýÓÃËùÖ¸ÏòµÄ¶ÔÏó¡£
µ±ÎÒÃÇÊÔͼ¸Ä±äconstÉùÃ÷µÄ±äÁ¿Ê±£¬Ôò»á±¨´í¡£
д¼¸¸öÀý×Ó£¬´ó¼Ò¿ÉÒÔ×Ðϸ´§Ä¦Ò»Ï£º
let a = null;
a = 20;
const obDev = {
a: 20,
b: 30
}
obDev.a = 30; console.log(obDev); // Object {a: 30, b: 30}
const fn = function() {}
const a = obDev.a;
... ... |
ֻҪץסÉÏÃæÎÒ˵µÄÌØÐÔ£¬ÄÇôÔÚʹÓÃlet/constʱ¾Í»áÏÔµÃÓÎÈÐÓÐÓà¡£
¸ù¾ÝÎÒ×Ô¼ºµÄ¾Ñ飬ʹÓÃconstµÄ³¡¾°Òª±ÈʹÓÃletµÄ³¡¾°¶àºÜ¶à¡£
¶þ¡¢ ¼ýÍ·º¯ÊýµÄʹÓÃ
֮ǰÎÒ˵ES6µß¸²ÁËjsµÄ±àÂëϰ¹ß£¬¼ýÍ·º¯ÊýµÄʹÓÃÕ¼Á˺ܴóÒ»²¿·Ö¡£
Ê×ÏÈÊÇд·¨ÉϵIJ»Í¬:
// es5
var fn = function(a, b) {
return a + b;
}
// es6 ¼ýÍ·º¯Êýд·¨£¬µ±º¯ÊýÖ±½Ó±»returnʱ£¬¿ÉÒÔÊ¡ÂÔº¯ÊýÌåµÄÀ¨ºÅ
const fn = (a, b) => a + b; // es5
var foo = function() {
var a = 20£»
var b = 30;
return a + b;
} // es6
const foo = () => {
const a = 20;
const b = 30;
return a + b;
} |
¼ýÍ·º¯Êý¿ÉÒÔÌæ»»º¯Êý±í´ïʽ£¬µ«ÊDz»ÄÜÌæ»»º¯ÊýÉùÃ÷
Æä´Î»¹ÓÐÒ»¸öÖÁ¹ØÖØÒªµÄÒ»µã£¬ÄǾÍÊǼýÍ·º¯ÊýÖУ¬Ã»ÓÐthis¡£Èç¹ûÄãÔÚ¼ýÍ·º¯ÊýÖÐʹÓÃÁËthis£¬ÄÇô¸ÃthisÒ»¶¨¾ÍÊÇÍâ²ãµÄthis¡£
Ò²ÕýÊÇÒòΪ¼ýÍ·º¯ÊýÖÐûÓÐthis£¬Òò´ËÎÒÃÇÒ²¾ÍÎÞ´Ó̸ÆðÓÃcall/apply/bindÀ´¸Ä±äthisÖ¸Ïò¡£¼ÇסÕâ¸öÌØÐÔ£¬ÄÜÈÃÄãÔÚreact×é¼þÖ®¼ä´«ÖµÊ±ÉÙ×ßÎÞÊýÍä·¡£
var person =
{
name: 'tom',
getName: function() {
return this.name;
}
}
// ÎÒÃÇÊÔͼÓÃES6µÄд·¨À´Öع¹ÉÏÃæµÄ¶ÔÏó
const person = {
name: 'tom',
getName: () => this.name
} // µ«ÊDZàÒë½á¹ûÈ´ÊÇ
var person = {
name: 'tom',
getName: function getName() {
return undefined.name;
}
}; |
ÔÚES6ÖУ¬»áĬÈϲÉÓÃÑϸñģʽ£¬Òò´ËthisÒ²²»»á×Ô¶¯Ö¸Ïòwindow¶ÔÏóÁË£¬¶ø¼ýÍ·º¯Êý±¾Éí²¢Ã»ÓÐthis£¬Òò´Ëthis¾ÍÖ»ÄÜÊÇundefined£¬ÕâÒ»µã£¬ÔÚʹÓõÄʱºò£¬Ò»¶¨ÒªÉ÷ÖØÉ÷ÖØÔÙÉ÷ÖØ£¬²»È»²ÈÁË¿ÓÄã¶¼²»ÖªµÀ×Ô¼º´íÔÚÄÄ£¡ÕâÖÖÇé¿ö£¬Èç¹ûÄ㻹ÏëÓÃthis£¬¾Í²»ÒªÓÃʹÓüýÍ·º¯ÊýµÄд·¨¡£
// ¿ÉÒÔÉÔ×ö¸Ä¶¯
const person = {
name: 'tom',
getName: function() {
return setTimeout(() => this.name, 1000);
}
}
// ±àÒëÖ®ºó±ä³É
var person = {
name: 'tom',
getName: function getName() {
var _this = this; // ʹÓÃÁËÎÒÃÇÔÚes5ʱ³£Óõķ½Ê½±£´æthisÒýÓÃ
return setTimeout(function () {
return _this.name;
}, 1000);
}
}; |
ÏȼÇס¼ýÍ·º¯ÊýµÄд·¨£¬²¢ÁôÒâ¼ýÍ·º¯ÊýÖйØÓÚthisµÄÌØÊâÐÔ£¬¸ü¹ýʵ¼ùÓë×¢ÒâÊÂÏîÎÒÃÇÔÚ·â×°react×é¼þʱÔÙÂýÂýÀ´¸ÐÊÜ¡£
Èý¡¢Ä£°å×Ö·û´®
Ä£°å×Ö·û´®ÊÇΪÁ˽â¾öʹÓÃ+ºÅÆ´½Ó×Ö·û´®µÄ²»±ãÀû¶ø³öÏֵġ£ËüµÄ¹¦Äܷdz£Ç¿´ó£¬µ«ÊÇÎÒÃÇ´ó¶àÊýʱºòʹÓÃËüÔò·Ç³£¼òµ¥¡£¿´Ò»¸öÀý×Ó´ó¼Ò¾ÍÃ÷°×ÔõôʹÓÃÁË¡£
// es6
const a = 20;
const b = 30;
const string = `${a}+${b}=${a+b}`;
// es5
var a = 20;
var b = 30;
var string = a + "+" + b + "="
+ (a + b); |
ʹÓà `` ½«Õû¸ö×Ö·û´®°ü¹üÆðÀ´£¬¶øÔÚÆäÖÐʹÓà ${} À´°ü¹üÒ»¸ö±äÁ¿»òÕßÒ»¸ö±í´ïʽ¡£
µ±È»Ä£°å×Ö·û´®»¹Ö§³Ö»»ÐеÈÇ¿´óµÄ¹¦ÄÜ£¬¸ü¶àµÄ´ó¼Ò¿Éͨ¹ý²Î¿¼×ÊÁϽøÒ»²½Ñ§Ï°¡£
ËÄ¡¢ ½âÎö½á¹¹
½âÎö½á¹¹ÊÇÒ»ÖÖȫеÄд·¨£¬ÎÒÃÇÖ»ÐèҪʹÓÃÒ»¸öÀý×Ó£¬´ó¼Ò¾ÍÄܹ»Ã÷°×½âÎö½á¹¹µ½µ×ÊÇÔõôһ»ØÊ¶ù¡£
// Ê×ÏÈÓÐÕâôһ¸ö¶ÔÏó
const props = {
className: 'tiger-button',
loading: false,
clicked: true,
disabled: 'disabled'
}
|
µ±ÎÒÃÇÏëҪȡµÃÆäÖеÄ2¸öÖµ£ºloadingÓëclickedʱ£º
// es5
var loading = props.loading;
var clicked = props.clicked;
// es6
const { loading, clicked } = props;
// ¸øÒ»¸öĬÈÏÖµ£¬µ±props¶ÔÏóÖÐÕÒ²»µ½loadingʱ£¬loading¾ÍµÈÓÚ¸ÃĬÈÏÖµ
const { loading = false, clicked } = props; |
ÊDz»ÊǼòµ¥ÁËÐí¶à£¿ÕýÊÇÓÉÓÚ½âÎö½á¹¹´ó´ó¼õÉÙÁË´úÂëÁ¿£¬Òò´ËËü´óÊÜ»¶Ó£¬Ôںܶà´úÂëÖÐËüµÄÓ°×ÓËæ´¦¿É¼û¡£
// ±ÈÈç
// section1
import React, { Component } from 'react';
// section2
export { default } from './Button';
// section3
const { click, loading } = this.props;
const { isCheck } = this.state; // more ÈκλñÈ¡¶ÔÏóÊôÐÔÖµµÄ³¡¾°¶¼¿ÉÒÔʹÓýâÎö½á¹¹À´¼õÉÙÎÒÃǵĴúÂëÁ¿ |
ÁíÍ⣬Êý×éÒ²ÓÐÊôÓÚ×Ô¼ºµÄ½âÎö½á¹¹¡£
// es6
const arr = [1, 2, 3];
const [a, b, c] = arr;
// es5
var arr = [1, 2, 3];
var a = arr[0];
var b = arr[1];
var c = arr[2];
|
Êý×éÒÔÐòÁкÅÒ»Ò»¶ÔÓ¦£¬ÕâÊÇÒ»¸öÓÐÐòµÄ¶ÔÓ¦¹ØÏµ¡£
¶ø¶ÔÏó¸ù¾ÝÊôÐÔÃûÒ»Ò»¶ÔÓ¦£¬ÕâÊÇÒ»¸öÎÞÐòµÄ¶ÔÓ¦¹ØÏµ¡£
¸ù¾ÝÕâ¸öÌØÐÔ£¬Ê¹ÓýâÎö½á¹¹´Ó¶ÔÏóÖлñÈ¡ÊôÐÔÖµ¸ü¼Ó¾ßÓпÉÓÃÐÔ¡£
Îå¡¢ º¯ÊýĬÈϲÎÊý
֮ǰÎÒÃDz»ÄÜÖ±½ÓΪº¯ÊýÖ¸¶¨Ä¬ÈϲÎÊý£¬Òò´ËºÜ¶àʱºòΪÁ˱£Ö¤´«ÈëµÄ²ÎÊý¾ß±¸Ò»¸öĬÈÏÖµ£¬ÎÒÃdz£³£Ê¹ÓÃÈçÏµķ½·¨£º
function add(x,
y) {
var x = x || 20;
var y = y || 30;
return x + y;
}
console.log(add()); // 50 |
ÕâÖÖ·½Ê½²¢²»ÊÇûÓÐȱµã£¬±ÈÈçµ±ÎÒ´«ÈëÒ»¸öxֵΪfalse£¬Õâ¸öʱºòÈÎÈ»»áÈ¡µ½Ä¬ÈÏÖµ£¬¾Í²»ÊÇÎÒÃǵı¾ÒâÁË¡£
À´¿´¿´ES6µÄĬÈÏֵд·¨£º
function add(x
= 20, y = 30) {
return x + y;
}
console.log(add());
|
ÔÚʵ¼Ê¿ª·¢Öиø²ÎÊýÌí¼ÓÊʵ±µÄĬÈÏÖµ£¬¿ÉÒÔÈÃÎÒÃǶԺ¯ÊýµÄ²ÎÊýÀàÐÍÓÐÒ»¸öÖ±¹ÛµÄÈÏÖª¡£
const ButtonGroupProps
= {
size: 'normal',
className: 'xxxx-button-group',
borderColor: '#333'
}
export default function ButtonGroup(props =
ButtonGroupProps) {
... ...
} |
Áù¡¢ Õ¹¿ªÔËËã·û
ÔÚES6ÖÐÓÃ...À´±íʾչ¿ªÔËËã·û£¬Ëü¿ÉÒÔ½«Êý×é·½·¨»òÕß¶ÔÏó½øÐÐÕ¹¿ª¡£ÏÈÀ´¿´Ò»¸öÀý×ÓËüÊÇÈçºÎʹÓõġ£
const arr1
= [1, 2, 3];
const arr2 = [...arr1, 10, 20, 30];
// ÕâÑù£¬arr2 ¾Í±ä³ÉÁË[1, 2, 3, 10, 20, 30]; |
µ±È»£¬Õ¹¿ª¶ÔÏóÊý¾ÝÒ²ÊÇ¿ÉÒԵõ½ÀàËÆµÄ½á¹û
const obj1
= {
a: 1,
b: 2,
c: 3
}
const obj2 = {
...obj1,
d: 4,
e: 5,
f: 6
} // ½á¹ûÀàËÆÓÚ const obj2 = Object.assign({}, obj1,
{d: 4})
|
Õ¹¿ªÔËËã·û»¹³£³£ÔËÓÃÔÚ½âÎö½á¹¹Ö®ÖУ¬ÀýÈçÎÒÃÇÔÚRaect·â×°×é¼þµÄʱºò³£³£²»È·¶¨propsµ½µ×»¹ÓжàÉÙÊý¾Ý»á´«½øÀ´£¬¾Í»áÀûÓÃÕ¹¿ªÔËËã·ûÀ´´¦ÀíÊ£ÓàµÄÊý¾Ý¡£
// ÕâÖÖ·½Ê½ÔÚreactÖÐÊ®·Ö³£ÓÃ
const props = {
size: 1,
src: 'xxxx',
mode: 'si'
}
const { size, ...others } = props; console.log(others) // È»ºóÔÙÀûÓÃÔÝ¿ªÔËËã·û´«µÝ¸øÏÂÒ»¸öÔªËØ£¬ÔÙÒÔºó·â×°react×é¼þʱ»á´óÁ¿Ê¹Óõ½ÕâÖÖ·½Ê½£¬ÕýÔÚѧϰreactµÄͬѧһ¶¨Òª¸ã¶®ÕâÖÖʹÓ÷½Ê½
<button {...others} size={size} />
|
Õ¹¿ªÔËËã·û»¹ÓÃÔÚº¯ÊýµÄ²ÎÊýÖУ¬À´±íʾº¯ÊýµÄ²»¶¨²Î¡£Ö»ÓзÅÔÚ×îºó²ÅÄÜ×÷Ϊº¯ÊýµÄ²»¶¨²Î£¬·ñÔò»á±¨´í¡£
// ËùÓвÎÊýÖ®ºÍ
const add = (a, b, ...more) => {
return more.reduce((m, n) => m + n) + a + b
}
console.log(add(1, 23, 1, 2, 3, 4, 5)) // 39
|
Õ¹¿ªÔËËã·ûµÄÔËÓÿÉÒÔ´ó´óÌá¸ßÎÒÃǵĴúÂëЧÂÊ£¬µ«ÊÇÔÚ¸Õ¿ªÊ¼Ê¹ÓõÄʱºò±È½ÏÈÆÄÔ£¬ÕÆÎÕºÃÁËÓÃÆðÀ´»¹ÊǷdz£Ë¬µÄ£¬¼ÇסÕâЩʹÓó¡¾°£¬Æ½Ê±ÔÚÓõÄʱºò¿ÉÒÔ¿ÌÒâ¶àÔËÓþÍÐÐÁË¡£
Æß¡¢¶ÔÏó×ÖÃæÁ¿ Óë class
ES6Õë¶Ô¶ÔÏó×ÖÃæÁ¿×öÁËÐí¶à¼ò»¯Óï·¨µÄ´¦Àí¡£
µ±ÊôÐÔÓëÖµµÄ±äÁ¿Í¬Ãûʱ¡£
const name
= 'Jane';
const age = 20
// es6
const person = {
name,
age
}
// es5
var person = {
name: name,
age: age
}; |
ÄÇôÕâÖÖ·½Ê½ÔÚÈκεط½¶¼¿ÉÒÔʹÓ㬱ÈÈçÔÚÒ»¸öÄ£¿é¶ÔÍâÌṩ½Ó¿Úʱ
const getName
= () => person.name;
const getAge = () => person.age;
// commonJSµÄ·½Ê½
module.exports = { getName, getAge }
// ES6 modulesµÄ·½Ê½
export default { getName, getAge }
|
³ýÁËÊôÐÔÖ®Í⣬¶ÔÏó×ÖÃæÁ¿Ð´·¨Öеķ½·¨Ò²¿ÉÒÔÓмòд·½Ê½¡£
// es6
const person = {
name,
age,
getName() { // Ö»Òª²»Ê¹ÓüýÍ·º¯Êý£¬this¾Í»¹ÊÇÎÒÃÇÊìϤµÄthis
return this.name
}
}
// es5
var person = {
name: name,
age: age,
getName: function getName() {
return this.name;
}
}; |
ÔÚ¶ÔÏó×ÖÃæÁ¿ÖпÉÒÔʹÓÃÖÐÀ¨ºÅ×÷ΪÊôÐÔ£¬±íʾÊôÐÔÒ²ÄÜÊÇÒ»¸ö±äÁ¿ÁË¡£
const name
= 'Jane';
const age = 20
const person = {
[name]: true,
[age]: true
}
|
ÔÚant-designµÄÔ´ÂëʵÏÖÖУ¬¾Í´óÁ¿Ê¹ÓÃÁËÕâÖÖ·½Ê½À´Æ´½Óµ±Ç°ÔªËصÄclassName£¬ÀýÈç:
let alertCls
= classNames(prefixCls, {
[`${prefixCls}-${type}`]: true,
[`${prefixCls}-close`]: !this.state.closing,
[`${prefixCls}-with-description`]: !!description,
[`${prefixCls}-no-icon`]: !showIcon,
[`${prefixCls}-banner`]: !!banner,
}, className); |
ant-designÊÇÒ»¸öÈϿɶȷdz£¸ßµÄUI×é¼þ¿â£¬¹Ù·½Ê¹ÓÃreactµÄ·½Ê½½øÐÐÁËʵÏÖ£¬³ý´ËÖ®Í⣬»¹ÓÐvueÒ²ÓжÔÓ¦µÄʵÏÖ£¬ÓÐÐËȤµÄͬѧ¿ÉÒÔÈ¥ËûÃǵĹÙÍøÁ˽âѧϰ¡£https://ant.design/index-cn
class
ES6ΪÎÒÃÇ´´½¨¶ÔÏóÌṩÁËеÄÓï·¨ÌÇ£¬Õâ¾ÍÊÇClassÓï·¨¡£Èç¹ûÄã¶ÔES5ÖÐÃæÏò¶ÔÏóµÄ·½Ê½±È½ÏÊìϤµÄ»°£¬ClassÕÆÎÕÆðÀ´Ò²ÊǷdz£Ñ¸Ëٵģ¬ÒòΪ³ýÁËд·¨µÄ²»Í¬£¬Ëü²¢²»»áÔö¼ÓеÄÄÑÒÔÀí½âµÄ֪ʶµã¡£ÎÒÃÇÏÈÀûÓÃÒ»¸ö¼òµ¥µÄÀý×ÓÀ´¿´¿´Ð´·¨µÄ²»Í¬¡£
// ES5
// ¹¹Ô캯Êý
function Person(name, age) {
this.name = name;
this.age = age;
}
// ÔÐÍ·½·¨
Person.prototype.getName = function() {
return this.name
}
// ES6
class Person {
constructor(name, age) { // ¹¹Ô캯Êý
this.name = name;
this.age = age;
}
getName() { // ÔÐÍ·½·¨
return this.name
}
} |
babel»á½«ES6µÄд·¨±àÒë³ÉΪÀûÓÃObject.definePropertyʵÏֵķ½Ê½£¬Õâ¸ö·½·¨µÄ¾ßÌåÓô¦´ó¼Ò¿ÉÒÔÔÚ¡¶JavaScript¸ß¼¶±à³Ì3¡·ÖÐѧϰÁ˽⣬°üÀ¨get£¬set£¬µÈ¶¼ÓÐÏêϸµÄ˵Ã÷
³ý´ËÖ®Í⣬ÎÒÃÇ»¹ÐèÒªÌØ±ð×¢ÒâÔÚʵ¼ÊʹÓÃÖеļ¸ÖÖд·¨·½Ê½µÄ²»Í¬£¬ÔÚÏÂÃæµÄÀý×Ó×¢ÊÍÖУ¬ÎÒ˵Ã÷ÁËËûÃÇ·Ö±ð¶ÔÓ¦µÄES5Öеĺ¬Òå¡£
class Person
{
constructor(name, age) { // ¹¹Ô캯Êý
this.name = name;
this.age = age;
}
getName() { // ÕâÖÖд·¨±íʾ½«·½·¨Ìí¼Óµ½ÔÐÍÖÐ
return this.name
}
static a = 20; // µÈͬÓÚ Person.a = 20
c = 20; // ±íʾÔÚ¹¹Ô캯ÊýÖÐÌí¼ÓÊôÐÔ ÔÚ¹¹Ô캯ÊýÖеÈͬÓÚ this.c =
20
// ¼ýÍ·º¯ÊýµÄд·¨±íʾÔÚ¹¹Ô캯ÊýÖÐÌí¼Ó·½·¨£¬ÔÚ¹¹Ô캯ÊýÖеÈͬÓÚthis.getAge
= function() {}
getAge = () => this.age
} |
¼ýÍ·º¯ÊýÐèҪעÒâµÄÈÔÈ»ÊÇthisµÄÖ¸ÏòÎÊÌ⣬ÒòΪ¼ýÍ·º¯ÊýthisÖ¸Ïò²»Äܱ»¸Ä±äµÄÌØÐÔ£¬Òò´ËÔÚreact×é¼þÖг£³£ÀûÓÃÕâ¸öÌØÐÔÀ´ÔÚ²»Í¬µÄ×é¼þ½øÐд«Öµ»á¸ü¼Ó·½±ã¡£
¼Ì³Ð extends
Ïà±ÈES5£¬ES6µÄ¼Ì³Ð¾ÍÒª¼òµ¥ºÜ¶à£¬ÎÒÃÇÖ±½ÓÀ´¿´Ò»¸öÀý×Ó¡£
class Person
{
constructor(name, age) {
this.name = name;
this.age = age;
}
getName() {
return this.name
}
} // StudentÀà¼Ì³ÐPersonÀà
class Student extends Person {
constructor(name, age, gender, classes) {
super(name, age);
this.gender = gender;
this.classes = classes;
} getGender() {
return this.gender;
}
} |
ÎÒÃÇÖ»ÐèÒªÒ»¸öextends¹Ø¼ü×Ö£¬¾Í¿ÉÒÔʵÏּ̳ÐÁË£¬²»ÓÃÏñES5ÄÇÑùÈ¥µ£ÐĹ¹Ô캯Êý¼Ì³ÐºÍÔÐͼ̳У¬³ý´ËÖ®Í⣬ÎÒÃÇ»¹ÐèÒª¹Ø×¢Ò»¸ö½Ð×ösuperµÄ·½·¨¡£
Ôڼ̳еĹ¹Ô캯ÊýÖУ¬ÎÒÃDZØÐëÈçÉÏÃæµÄÀý×ÓÄÇôµ÷ÓÃÒ»´Îsuper·½·¨£¬Ëü±íʾ¹¹Ô캯ÊýµÄ¼Ì³Ð£¬ÓëES5ÖÐÀûÓÃcall/apply¼Ì³Ð¹¹Ô캯ÊýÊÇÒ»ÑùµÄ¹¦ÄÜ¡£
// ¹¹Ô캯ÊýÖÐ
// es6
super(name, age);
// es5
Person.call(this); |
super»¹¿ÉÒÔÖ±½Óµ÷Óø¸¼¶µÄÔÐÍ·½·¨£¬super.getName£¬µ«ÊÇÎÒ×Ô¼º´ÓÀ´Ã»ÕâÑùÓùý£¬Ò²¾Í²»À©Õ¹ËµÁË¡£
¼Ì³ÐÔÚreactÖÐÓдóÁ¿µÄʹÓó¡¾°£¬Ðí¶à×é¼þ¶¼ÀûÓü̳ÐÀ´´´½¨¡£
import React,
{ Component } from 'react';
class App extends Component {
defaultProps = {}
state = {}
componentWillMount() {}
componentDidMount() {}
btnClick = e => {}
render() {}
} |
Ö»Òª¸ù¾ÝÎÒÃÇÉÏÃæËùѧµ½µÄ֪ʶ£¬Ã÷È·µÄÖªµÀÄÄЩÊôÐÔ·½·¨ÊÇ·ÅÔÚ¹¹Ô캯ÊýÖУ¬ÄÄЩÊôÐÔ·½·¨ÊǷŵ½ÁËÔÐÍÖУ¬ÄÇôÎÒÃÇ×Ô¼ºÔÚ±àдreact×é¼þµÄʱºò¾ÍÒª¼òµ¥ºÍÇåÎúºÜ¶à¡£
ÆäʵֻҪÎÒÃÇES5ÃæÏò¶ÔÏóµÄ֪ʶ×ã¹»Ôúʵ£¬ES6ºÍreactÕÆÎÕÆðÀ´Ò²Ã»ÓÐÌ«¶àµÄÄѶȣ¬ËùÓеÄѧϰÄѵ㣬²¢²»ÔÚES6ÕâЩ²»Í¬µÄÓï·¨ÌÇÉÏ£¬¶øÔÚÓÚES5ÖеÄÔÀí£¬Òò´ËÎÒÔÚÇ°Ãæ·ÖÏíES5µÄºËÐÄ֪ʶµÄʱºò£¬ºÜ¶à¶ÁÕßÀÏÒ¯¶¼ÆÈ²»¼°´ýµÄÏ£ÍûÎÒÄܹ»¸ü¶àµÄ˵һ˵ES6µÄ֪ʶ¡£ÆäʵÎÒÃǶ¼Ã»ÓбØÒªÄÇô׿±£¬Ö»ÒªÇ°Ãæ10¶àƪÎÄÕµÄ֪ʶ×ã¹»Ôúʵ£¬ÕâÆªÎÄÕÂËùÉæ¼°µ½µÄ³£ÓõÄES6֪ʶ£¬×î¶à»¨30·ÖÖÓÒ²¾ÍÕÆÎÕÁË¡£ÕâЩд·¨ÉϵIJ»Í¬²¢²»»áÔì³É´ó¼ÒÀí½âÉϵÄÀ§ÄÑ£¬Ö»ÐèÒªÓÐÒ»¸öÊìϤ¹ý³Ì¾ÍÐÐÁË¡£ËùÒÔ´ó¼ÒµÄÖØµã£¬»¹ÊÇÒª»Ø¹éµ½»ù´¡ÉÏÀ´¡£
|