خروجی توابع جاوا اسکریپت (توابع تودرتو)
سلام به همه دوستان عزیز
من یه سوال در مورد جاوااسکریپت دارم.
من یه قطعه کد جاوا اسکریپت دارم که یه تابع تعریف کردم.
داخل اون تابع، یه تابع دیگه تعریف کردم. (تابع تودرتو)
حالا من مقداری رو به تابع اصلی (والد) میدم. در وسطهای کد، تابع دوم تعریف میشه و متن دریافتی تابع اول رو بررسی میکنه. حالا اگر شرط درست بود، میخوام که مقداری رو برگردونه. البته نمی خوام توسط تابع دومی (فرزند) برگشت داده بشه.
بلکه میخوام که مقدار بر گشتی توسط تابع والد برگشت داده بشه و کد هم تموم بشه.
حالا اگر کسی میتونه کمکم کنه، «یاعلی». ممنون میشم
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
اگه کدتو میزاشتی خوب میشد ...من دقیقا نمیدونم به چه روشی شما نوشتی کدتو ... به چند حالت میشه ...
function funcParent(param) {
this.value = param;
function funcChild() {
var a = this.value + 10
return a;
}
return funcChild();
}
function funcParent(param) {
this.value = param;
var funcChild = function () {
var a = this.value + 10
return a;
}
return funcChild();
}
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
توجه داشته باشین که فانکش های تو در تو در واقع پیاده سازی ساختار OOP در js هستند ...
var Myclass = function (params) {
var privateVar = 10;
this.publicVar = 20;
function privateFunc() {
privateVar = params + 10;
}
this.publicFunc = function () {
this.publicVar = params + 10;
return this.publicVar;
}
}
var obj = new Myclass(20);
var a = obj.publicVar;
var b = obj.publicFunc();
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
سلام و تشکر از اینکه پاسخ دادین
فرض کنین که کد من مثل کد زیر است:
function funcParent(param) {
var funcChild = function () {
if(param=="return")
return "OK";
else
document.getElementById('show_here').innerHTML='Ex : Welcome To MySite';
}
}
یعنی من میخوام که وقتی تابع funcParent فراخوانی میشه، توسط تابع funcChild بررسی بشه. وقتی که شرط بررسی شد، یا مقداری برگردونه یا مقداری رو درون یه تگی با آیدی show_here نشون بده.
یعنی من می خوام که مثلاً OK توسط تابع funcParent برگشت داده بشه.
ممنونم
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
با اجرا شدن funcParent , متد funcChild اجرا نمیشه ... کافیه که به آخر funcParent یه return funcChild(); اضافه کنین ...
function funcParent(param) {
var funcChild = function () {
if (param == "return")
return "OK";
else
document.getElementById('show_here').innerHTML = 'Ex : Welcome To MySite';
}
return funcChild();//<------------------------------
}
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
من کدی که نوشتم رو بهتون نشون می دم. من می خوام که از آژاکس برای ارسال اطلاعات استفاده کنم. ارسال اطلاعات و دریافت رو به خوبی انجام میده.
کد من به این صورت کار می کنه که توسط تابع get_username من دستوراتی رو ارسال می کنم.
در مقدار ورودی تابع می خوام اگر متن return وارد شد، مقدار رو توسط تابع برگردونه و اگر چیزی جز return بود، فرض کند که تگی با آیدی متن ورودی در صفحه وجود دارد و مقدار برگشتی رو درون اون نشون بده.
بی زحمت اگر مشکلی نیست، خودتون تست کنین و بهم بگید.
ممنونم
function get_username(return_show)
{
var oXmlHttp = CreateXMLHttp();
oXmlHttp.open("GET", "process.php?id=1",true);
oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oXmlHttp.onreadystatechange = function ()
{
if (oXmlHttp.readyState == 4)
{
if (oXmlHttp.status == 200)
{
if(return_show=='return')
{
return oXmlHttp.responseText;
}
else
document.getElementById(return_show).innerHTML=(oX mlHttp.responseText);
}
else
{
document.getElementById(return_show).innerHTML=("A jax Error " + oXmlHttp.statusText);
}
}
};
oXmlHttp.setRequestHeader("Accept-charset","utf-8");
oXmlHttp.send(sBody);
}
نقل قول: خروجی توابع جاوا اسکریپت (توابع تودرتو)
نقل قول:
نوشته شده توسط
exlord
اگه کدتو میزاشتی خوب میشد ...من دقیقا نمیدونم به چه روشی شما نوشتی کدتو ... به چند حالت میشه ...
توجه نمیکنی به این مسائل و وقت هردومونو تلف میکنی ...
این function داخلی یه EventHandler ه و بهد از اینکه readyState عوض شد اجرا میشه ... یه function معمولی نیست که بشه ازش چیزی return کرد ...