±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÍøÂç
,±¾Îļòµ¥µÄ¶ÔES6Ä£¿é½øÐÐÁ˸ÅÊöºÍÏê½â£¬Ï£Íû¶ÔÄúµÄѧϰÓаïÖú¡£ |
|
¼ò½é
ºÎΪģ¿é
Ò»¸öÄ£¿éÖ»²»¹ýÊÇÒ»¸öдÔÚÎļþÖÐµÄ JavaScript ´úÂë¿é¡£
Ä£¿éÖеĺ¯Êý»ò±äÁ¿²»¿ÉÓ㬳ý·ÇÄ£¿éÎļþµ¼³öËüÃÇ¡£
¼òµ¥µØËµ£¬ÕâЩģ¿é¿ÉÒÔ°ïÖúÄãÔÚÄãµÄÄ£¿éÖбàд´úÂ룬²¢ÇÒÖ»¹«¿ªÓ¦¸Ã±»ÄãµÄ´úÂëµÄÆäËû²¿·Ö·ÃÎʵĴúÂ벿·Ö¡£
ΪʲôҪʹÓÃÄ£¿é
1.Ôö¼Ó¿Éά»¤ÐÔ£ºÓÉÓÚÿ¸öÄ£¿é¶¼ÊǶÀÁ¢µÄ£¬Ã¿¸öÈËдµÄ´úÂëÊDz»»áÏ໥ӰÏìµÄ£¬ÔÚά»¤´úÂëµÄʱºòºÜºÃÅŲéÊÇÄĸöÄ£¿é³ö´í¡£
2.¿É¸´ÓÃÐÔ£ºÔÚÈÕ³£µÄ¿ª·¢ÖУ¬ÌرðÊÇ´óµãµÄÏîÄ¿£¬´úÂëµÄ¿É¸´ÓÃÐԾ͸üÖØÒªÁË£¬Ò²ÐíÄã»áÓø´ÖÆÕ³ÌùµÄÐÎʽ£¬µ«ÊÇÖ±½ÓÒ»¸ö
import ÃüÁî¾Í¿ÉÒԸ㶨£¬Æñ²»¿ìÔÕ¡£
3.±ÜÃâÃüÃûÎÛȾ£ºÔÚ javascript ½Å±¾ÖУ¬ËùÓÐµÄ js
ÎļþµÄ¶¥¼¶×÷ÓÃÓò´´½¨µÄ±äÁ¿£¬»á±»Ìí¼Óµ½¹²ÏíµÄÈ«¾Ö×÷ÓÃÓò£¬Õâ¾Í»áµ¼Ö²»Í¬µÄÈË¿ª·¢µÄ´úÂë¿ÉÄÜ»áÓÐÏàͬµÄ±äÁ¿Ãû£¬µ¼Ö±äÁ¿ÃûÎÛȾ¡£
ÈçºÎʹÓÃ
µ¼³öÄ£¿é
µ¼³öÄ£¿éËùÓõÄÃüÁîÊÇ export¡£
Ç°ÃæÒ²Ìáµ½Ò»¸öÄ£¿é¾ÍÊÇÒ»¸ö javascript Îļþ£¬ÔÚÕâ¸öÄ£¿éÖж¨ÒåµÄ±äÁ¿£¬ÍⲿÊÇÎÞ·¨»ñÈ¡µ½µÄ£¬Ö»ÓÐͨ¹ý
export µ¼³öµÄ±äÁ¿ÆäËûÄ£¿é²Å¿ÉÒÔÓÃ
×î¼òµ¥µÄµ¼³ö·½Ê½¾ÍÊÇÔÚÉùÃ÷µÄ±äÁ¿¡¢º¯Êý¡¢ÀàÇ°Ãæ¼ÓÒ»¸ö export
//
export1.js
// µ¼³ö±äÁ¿
export let name = 'ÌÒÎÌ';
// µ¼³öº¯Êý
export function print() {
console.log("»¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°");
}
// µ¼³öÀà
export class Person {
constructor(name) {
this.name = name;
}
}
// ˽Óк¯Êý
function privateFunction () {
console.log('ÎÒÊÇ˽Óк¯Êý£¬Íⲿ·ÃÎʲ»ÁËÎÒ');
} |
×¢Ò⣺
1. ±»µ¼³öµÄº¯Êý»òÕßÀ࣬¶¼±ØÐëÒªÓÐÃû³Æ£¬Òâ˼¾ÍÊÇ˵²»ÄÜÓÃÕâÖÖ·½Ê½µ¼³öÄäÃûº¯Êý»òÕßÄäÃûÀà¡£
2. privateFunction º¯Êý£¬Ã»ÓÐ¼Ó export ÃüÁ±»µ±×öÕâ¸öÄ£¿éµÄ˽ÓбäÁ¿£¬ÆäËûÄ£¿éÊÇ·ÃÎʲ»µ½µÄ¡£
³ýÁËÉÏÃæÄÇÖÖµ¼³ö·½Ê½£¬»¹ÓÐÁíÍâÒ»ÖÖ
//
export2.js
// µ¼³ö±äÁ¿
let name = 'ÌÒÎÌ'£»
// µ¼³öº¯Êý
function print() {
return '»¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}
// µ¼³öÀà
class Person {
constructor(name) {
this.name = name;
}
}
// ˽Óк¯Êý
function privateFunction () {
return 'ÎÒÊÇ˽Óк¯Êý£¬Íⲿ·ÃÎʲ»ÁËÎÒ';
}
export { name, print, Person } |
ÉÏÃæÕâÖÖд·¨µ¼ÈëÒ»×é±äÁ¿£¬Óë export1.js Êǵȼ۵ġ£
µ¼ÈëÄ£¿é
µ¼ÈëµÄÄ£¿é¿ÉÒÔÀí½âΪÊÇÉú²úÕߣ¨»òÕß·þÎñµÄÌṩÕߣ©£¬¶øÊ¹Óõ¼ÈëµÄÄ£¿éµÄÄ£¿é¾ÍÊÇÏû·ÑÕß¡£
µ¼ÈëÄ£¿éµÄÃüÁîÊÇ import, import µÄ»ù±¾ÐÎʽÈçÏ£º
import
{ var1, var2 } from './example.js' |
import Óï¾ä°üº¬Á½²¿·Ö£ºÒ»Êǵ¼ÈëÐèÒªµÄ±êʶ·û£¬¶þÊÇÄ£¿éµÄÀ´Ô´¡£
×¢Ò⣺ä¯ÀÀÆ÷ÖÐÄ£¿éÀ´Ô´ÒªÒÔ¡¸/¡¹»òÕß ¡¸./¡¹ »òÕß ¡¸../¡¹¿ªÍ· »òÕß url ÐÎʽ£¬²»È»»á±¨´í¡£
ÀýÈçÎÒÃǵ¼Èë export1.js Ä£¿é£¬¿ÉÒÔÕâôµ¼Èë
//
import1.js
import { name, print, Person } from './export1.js';
console.log(name); // ÌÒÎÌ
console.log(print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°
// ±¨´í, ²»Äܶ¨ÒåÏàͬÃû×Ö±äÁ¿
let name = 2333;
// ±¨´í£¬²»ÄÜÖØÐ¸³Öµ
name = "СÖí"; |
¿ÉÒÔ¿´µ½µ¼Èë°ó¶¨(ÕâÀï²»Àí½â°ó¶¨£¬ÎÄÕºóÃæ»á½âÊÍ)ʱ£¬ÐÎʽÀàËÆÓÚ¶ÔÏó½â¹¹£¬µ«Êµ¼ÊÉϲ¢ÎÞ¹ØÁª¡£
µ±µ¼Èë°ó¶¨µÄʱºò£¬°ó¶¨ÀàËÆÓÚʹÓÃÁË const ¶¨Ò壬Òâζ×Ų»Äܶ¨ÒåÏàͬµÄ±äÁ¿Ãû£¬µ«ÊÇûÓÐÔÝʱÐÔËÀÇøÌØÐÔ(µ«ÊÇÔÚ
ÉîÈëÀí½âES6 Õâ±¾ÊéÀïÃæËµÊÇÓÐÔÝʱÐÔËÀÇøÏÞÖÆ£¬ÎÒÔÚ chrome ÉϲâÊÔÁ˵쬶ÁÕßÏ£ÍûҲȥÊÔÏ£¬µ½µ×Êܲ»ÊÜÏÞÖÆ)¡£
ÉÏÃæÕâÐдúÂë»á±¨´í¡£
ÃüÃû¿Õ¼äµ¼Èë
ÕâÖÖµ¼È뷽ʽÊǰÑÕû¸öÉú²úÕßÄ£¿éµ±×öµ¥Ò»¶ÔÏóµ¼È룬ËùÓеĵ¼³ö±»µ±×ö¶ÔÏóµÄÊôÐÔ¡£
//
import2.js
import * as namespace from './export1.js'
console.log(namespace.name); // ÌÒÎÌ
console.log(namespace.print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ° |
ÖØÃüÃûµ¼Èëµ¼³ö
ÓÐʱºòÄã²¢²»Ïëµ¼³ö±äÁ¿µÄÔÃû³Æ£¬ÐèÒªÖØÐÂÃüÃû,Õâ¸öʱºòÖ»ÐèҪʹÓà as ¹Ø¼ü×ÖÀ´Öƶ¨ÐµÄÃû×Ö¼´¿É¡£
ÖØÃüÃûµ¼³ö
//
export3.js
function print() {
return '»¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}
export { print as advertising } |
µ¼ÖØÃüÃûÈë
ÄÃÉÏÃæµ¼³öµÄ¾ÙÀý×Ó
//
import3.js
import { advertising as print } from './export3.js'
console.log(typeof advertising); // "undefined"
console.log(print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ° |
´Ë´úÂëµ¼Èë advertising º¯Êý²¢ÖØÃüÃûΪÁË print £¬ÕâÒâζ×Å´ËÄ£¿éÖÐ advertising
±êʶ·û²»´æÔÚÁË¡£
default ¹Ø¼ü×Ö
default ¹Ø¼ü×ÖÊÇÓÃÀ´×öĬÈϵ¼Èëµ¼³öµÄ¡£
ĬÈϵ¼³ö
//
import3.js
import { advertising as print } from './export3.js'
console.log(typeof advertising); // "undefined"
console.log(print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ° |
default Õâ¸ö¹Ø¼ü×ÖÔÚ JS ÖоßÓÐÌØÊ⺬Ò壬¼È¿ÉÒÔ×÷ΪͬÃüÃûµ¼³ö£¬ÓÖ±êÃ÷ÁËÄ£¿éÐèҪʹÓÃĬÈÏÖµ¡£
×¢Ò⣺ Ò»¸öÄ£¿éÖÐÖ»ÄÜÓÐÒ»¸öĬÈϵ¼³ö¡£
ĬÈϵ¼Èë
ĬÈϵ¼ÈëºÍÒ»°ãµÄµ¼È벻֮ͬ´¦¾ÍÊDz»ÐèÒª
import
print from './defaultExport.js'
console.log(print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ° |
д´óÀ¨ºÅÁË£¬¿´ÆðÀ´¸ü¼ò½à¡£
°ÑÉÏÃæ defaultExport.js Ä£¿éµ¼³öµÄ×÷ΪÀý×Ó
ÄÇÈç¹û¼ÈÓÐĬÈϵÄÓÖÓзÇĬÈϵÄÔõôµ¼ÈëÄØ£¿¿´Àý×Ó¾ÍÃ÷°×ÁË
//
defaultImport1.js
let name = 'ÌÒÎÌ';
function print() {
return '»¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°';
}
export { name, print as default } |
//
defaultImport2.js
import print, { name } from './defaultImport1.js'
console.log(print()); // »¶Ó¹Ø×¢¹«ÖںţºÇ°¶ËÌÒÔ°
console.log(name); // ÌÒÎÌ |
»ìºÏµ¼ÈëÐèÒª°ÑĬÈϵ¼ÈëµÄÃû³Æ·ÅÔÚ×îÇ°Ãæ£¬È»ºóÓöººÅºÍºóÃæ·ÇĬÈϵ¼³öµÄ·Ö¸î¿ª¡£
˼¿¼Á˺ܾÃÊÇ·ñÓ¦¸Ã¼ÓÉϽø½×ÄÚÈÝ£¬±¾À´ÊÇÏëдÈëÃż¶ÏµÁе쬵«ÊÇÏëÁËÏ룬»¹ÊǶ¼Ð´½øÀ´°É£¬ÈëÃŵĿ´ÈëÃÅÇ°Ãæ»ù´¡£¬ÉîÈëÀí½âµÄ¿´½ø½×¡£
½ø½×
½ø½×²¿·ÖÖ÷Òª½éÉÜ Ä£¿éµÄ¼¸¸öÌØÐÔ
1.¾²Ì¬Ö´ÐÐ
2.¶¯Ì¬¹ØÁª
3.Ä£¿é²»»áÖØ¸´Ö´ÐÐ
¾²Ì¬Ö´ÐÐ
Ëùν¾²Ì¬Ö´ÐÐÆäʵ¾ÍÊÇÔÚ±àÒë½×¶Î¾ÍÐèҪȷ¶¨Ä£¿éµÄÒÀÀµ¹ØÏµ£¬ÄÇô¾Í»á³öÏÖ import ÃüÁî»áÓÅÏÈÓÚÄ£¿éÆäËûÄÚÈݵÄÖ´ÐУ¬»áÌáǰµ½±àÒë½×¶ÎÖ´ÐС£
//
static1.js
console.log('Å寿');
import { nouse } from './static2.js'
// static2.js
export function nouse() {
return 'ÎÒÊDz»ÐèÒªµÄ';
}
console.log('СÖí'); |
¿ÉÒÔ¿´µ½×îºóÊä³öµÄÓ¦¸ÃÊÇ¡¸Ð¡Öí¡¹ÏÈÊä³ö£¬¶ø¡¸Å寿¡¹ºóÊä³ö£¬¿ÉÒԵóöËäÈ» static2.js ÔÚºóÃæÒýÈ룬µ«ÊǻᱻÌáÉýµ½Ä£¿éµÄ×îÇ°ÃæÏÈÖ´ÐС£
ÕâÒ²ÊÇÎÒÇ°ÃæËù˵µÄ²»ÊÜÔÝʱÐÔËÀÇøÔÒòÖ®Ò»£¬ÔÚÕâÀï¿ÉÒÔдһ¸öÀý×ÓÊÔÊÔ£º
//
static3.js
console.log(nouse());
import { nouse } from './static2.js'
// ½á¹û£º
// СÖí
// ÎÒÊDz»ÐèÒªµÄ |
¾¼ìÑéȷʵÊÇ¿ÉÒÔÔÚ import ֮ǰʹÓõ¼ÈëµÄ°ó¶¨¡£
¾²Ì¬Ö´Ðл¹»áµ¼ÖÂÒ»¸öÎÊÌ⣬ÄǾÍÊDz»Äܶ¯Ì¬µ¼ÈëÄ£¿é¡£
//
±¨´í
if (flag) {
import { nouse } from './static3.js'
}
// ±¨´í
import { 'no' + 'use' } from './static3.js' |
ÒòΪ import ÊǾ²Ì¬Ö´Ðеģ¬ËùÒÔÔÚ¾²Ì¬(´Ê·¨)·ÖÎö½×¶Î£¬ÊÇû·¨µÃµ½±í´ïʽ»òÕß±äÁ¿µÄÖµµÄ¡£
µ«ÊÇΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÒòΪÁË import() Õâ¸öº¯Êý£¬Õâ¸öËãÀ©Õ¹ÄÚÈݰɣ¬Ð´Ì«¶àÁËÎÒÅÂûÈË¿´ÍêÁË£¬ºóÃæ»áÓÐÀ©Õ¹ÔĶÁÁ´½Ó¡£
¶¯Ì¬¹ØÁª
ËùνµÄ¶¯Ì¬¹ØÁª£¬Æäʵ¾ÍÊÇÒ»Öְ󶨹ØÏµ, ÕâÊÇ ES6 ·Ç³£ÖØÒªµÄÌØÐÔ£¬Ò»¶¨×ÐϸÔĶÁ¡£
ÔÚ ES6 µÄÄ£¿éÖУ¬Êä³öµÄ²»ÊǶÔÏóµÄ¿½±´£¬²»¹ÜÊÇÒýÓÃÀàÐÍ»¹ÊÇ»ù±¾ÀàÐÍ, ¶¼ÊǶ¯Ì¬¹ØÁªÄ£¿éÖеÄÖµ£¬¡£
//
dynamic1.js
export let name = 'ÌÒÎÌ';
export function setName(name) {
name = name;
}
// dynamic2.js
import { name, setName } from './dynamic1.js'
console.log(name); // ÌÒÎÌ
setName('²»ÒªÁ³');
console.log(name); // ²»ÒªÁ³ |
Ææ¼£°ãµÄ·¢ÏÖÔÚ dynamic2.js Ä£¿éÖпÉÒÔÐÞ¸Ä dynamic1.js Ä£¿éÀïÃæµÄÖµ, ²¢ÇÒ·´Ó¦µ½
name °ó¶¨ÉÏ£¨Õâ¸öÊÇÖØµã£¬Õâ¸ö·´Ó¦µ½ÁËÏû·ÑÕßÄ£¿é£©, ËùÒÔÎÒÃǰѵ¼ÈëµÄ±äÁ¿½Ð×ö°ó¶¨¡£
ÔÚÉú²úÕßÄ£¿éµ¼³öµÄ±äÁ¿ÓëÏû·ÑÕßÄ£¿éµ¼ÈëµÄ±äÁ¿»áÓÐÒ»¸ö°ó¶¨¹ØÏµ£¬ÎÞÂÛǰÕß»òÕߺóÕß·¢Éú¸Ä±ä£¬¶¼»á»¥ÏàÓ°Ïì¡£
×¢ÒâÇø·ÖÔÚÒ»¸öÎļþ»òÄ£¿éÖлù±¾ÀàÐ͵ĸ³Öµ£¬Á½ÕßÊÇ»¥²»Ó°ÏìµÄ¡£
Ä£¿é²»»áÖØ¸´Ö´ÐÐ
Õâ¸öÌØÐԱȽϺÃÀí½â£¬¾ÍÊÇÈç¹û´ÓÒ»¸öÉú²úÕßÄ£¿éÖзֱðµ¼Èë°ó¶¨£¬¶ø²»ÊÇÒ»´ÎÐÔµ¼È룬Éú²úÕßÄ£¿é²»»áÖ´Ðжà´Î¡£
//
noRepeat1.js
export let name = 'ÌÒÎÌ';
export let age = '22';
console.log('ÎÒÕýÔÚÖ´ÐС£¡£¡£');
// noRepeat2.js
import { name } from './noRepeat1.js';
import { age } from './noRepeat1.js';
console.log(name);
console.log(age);
// ½á¹û
// ÎÒÕýÔÚÖ´ÐС£¡£¡£
// ÌÒÎÌ
// 22 |
ËäÈ»µ¼ÈëÁËÁ½´Î£¬µ«ÊÇ noRepeat1.js Ö»ÓÐÖ´ÐÐÒ»´Î¡£Èôͬһ¸öÓ¦Óã¨×¢ÒâÊÇͬһ¸öÓ¦Óò»ÊÇÄ£¿é£©Öе¼Èëͬһ¸öÄ£¿é£¬ÔòÄÇЩģ¿é¶¼»áʹÓÃÒ»¸öÄ£¿éʵÀý£¬Òâ˼¾ÍÊÇ˵ÊÇÒ»¸öµ¥Àý¡£
|