Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ES6 »ù´¡
 
  1738  次浏览      27
 2019-5-29 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ô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»Í¬²¢²»»áÔì³É´ó¼ÒÀí½âÉϵÄÀ§ÄÑ£¬Ö»ÐèÒªÓÐÒ»¸öÊìϤ¹ý³Ì¾ÍÐÐÁË¡£ËùÒÔ´ó¼ÒµÄÖØµã£¬»¹ÊÇÒª»Ø¹éµ½»ù´¡ÉÏÀ´¡£

   
1738 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì