export کردن تابع و متغییر در es6
به کد زیر توجه کنید :
فایل style2.js ::::::::::
کد HTML:
var a=20;
var num=30;
function num(){
alert('hi');
}
export {a,num}
فایل style.js :::::
کد HTML:
import * as style2 from './style2';
style2.num(); // کار نمیکنه
alert(style2.num); // کار میکنه
من یک متغییر با نام num و یک تابع با نام num دارم ( هم نام هستند :39: )
وقتی داخل style2.js اطلاعات style.js رو import میکنم , فقط میتونم از متغییر num استفاده کنم و نمیتونم از تابع num استفاده بکنم .
چون اسم تابع و متغییر هم نام هست مشکل ایجاد میشه
تشکر از دوستان
پاسخ : export کردن تابع و متغییر در es6
باسلام، برای درک این موضوع ابتدا باید با رفتار hoisting در جاوا اسکریپت آشنا باشید سپس باید بدانید در بالای scope ابتدا function ها سپس variable ها ساخته و تعریف می شوند به همین دلیل num شما overwrite و مقدار 30 را گرفته.
پاسخ : export کردن تابع و متغییر در es6
نقل قول:
نوشته اصلی توسط
T.Toosi
باسلام، برای درک این موضوع ابتدا باید با رفتار hoisting در جاوا اسکریپت آشنا باشید سپس باید بدانید در بالای scope ابتدا function ها سپس variable ها ساخته و تعریف می شوند به همین دلیل num شما overwrite و مقدار 30 را گرفته.
ممنون بابت پاسختون . راهکاری وجود داره که من بتونم تابعی با نام num و هم متغییری با نام num داشته باشم و بتونم از هردوشون استفاده بکنم ؟ درواقع در php این امکان وجود داره یعنی شما یک متغییر با نام num و یک تابع با نام num میسازید > هر وقت نوشتید num() تابع صدا زده میشه و هر وقت گفتید num متغییر صدا زده میشه .
پاسخ : export کردن تابع و متغییر در es6
نقل قول:
نوشته اصلی توسط
<?php?>
ممنون بابت پاسختون . راهکاری وجود داره که من بتونم تابعی با نام num و هم متغییری با نام num داشته باشم و بتونم از هردوشون استفاده بکنم ؟ درواقع در php این امکان وجود داره یعنی شما یک متغییر با نام num و یک تابع با نام num میسازید > هر وقت نوشتید num() تابع صدا زده میشه و هر وقت گفتید num متغییر صدا زده میشه .
باسلام، در جاوا اسکریپت همه چی object است و با php تفاوت دارد، پی اچ پی به قول معروف fully object oriented نیست و فقط feature هایی مثل class، object, constructors, destructors و .. را پشتیبانی می کند. در نتیجه تنها راهی که شما دارید یک چیزی مثل زیر است :
کد:
var a=20;
function num(){
alert('hi');
}
num.num=30
export {a,num}
کد:
import * as style2 from './style2';
style2.num();
alert(style2.num.num);