-
April 11th, 2019, 15:46
#1
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 دارم ( هم نام هستند )
وقتی داخل style2.js اطلاعات style.js رو import میکنم , فقط میتونم از متغییر num استفاده کنم و نمیتونم از تابع num استفاده بکنم .
چون اسم تابع و متغییر هم نام هست مشکل ایجاد میشه
تشکر از دوستان
-
-
April 11th, 2019 15:46
# ADS
-
April 11th, 2019, 18:01
#2
عضو دائم
پاسخ : export کردن تابع و متغییر در es6
باسلام، برای درک این موضوع ابتدا باید با رفتار hoisting در جاوا اسکریپت آشنا باشید سپس باید بدانید در بالای scope ابتدا function ها سپس variable ها ساخته و تعریف می شوند به همین دلیل num شما overwrite و مقدار 30 را گرفته.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
April 12th, 2019, 18:04
#3
پاسخ : export کردن تابع و متغییر در es6
نوشته اصلی توسط
T.Toosi
باسلام، برای درک این موضوع ابتدا باید با رفتار hoisting در جاوا اسکریپت آشنا باشید سپس باید بدانید در بالای scope ابتدا function ها سپس variable ها ساخته و تعریف می شوند به همین دلیل num شما overwrite و مقدار 30 را گرفته.
ممنون بابت پاسختون . راهکاری وجود داره که من بتونم تابعی با نام num و هم متغییری با نام num داشته باشم و بتونم از هردوشون استفاده بکنم ؟ درواقع در php این امکان وجود داره یعنی شما یک متغییر با نام num و یک تابع با نام num میسازید > هر وقت نوشتید num() تابع صدا زده میشه و هر وقت گفتید num متغییر صدا زده میشه .
-
-
April 12th, 2019, 22:12
#4
عضو دائم
پاسخ : 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);
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید