PDA

View Full Version : سوال: متد چیست؟



ravand
سه شنبه 14 خرداد 1392, 08:03 صبح
سلام اگه یکی از شما بخواد متد رو در jquery براش تعریف بکنید چطوری تعریف میکنید؟ فرقش با تابع چیه؟
متشکرم.

tux-world
سه شنبه 14 خرداد 1392, 14:10 عصر
متد معنا و مفهوم کلی داره و به هیچ موضوعی نمیشه دقیق ربط داد. مجموعه شیوه ها ، روشها و راه کارهای انجام شده رو متد میگن.

ravand
سه شنبه 14 خرداد 1392, 14:32 عصر
متد معنا و مفهوم کلی داره و به هیچ موضوعی نمیشه دقیق ربط داد. مجموعه شیوه ها ، روشها و راه کارهای انجام شده رو متد میگن.
پس چرا میگن مثلاً متد $.get() ؟
از کجا بفهمم مثلاً این متد هست یا تابع؟
البته تعریف تابع رو میدونم ولی متد رو نه . فقط میدونم متد به معنای روش هست.

ravand
سه شنبه 14 خرداد 1392, 14:52 عصر
پس میشه گفت به دستورات و توابع جی کوئری میگن متد درسته؟

Variable
چهارشنبه 15 خرداد 1392, 00:25 صبح
شما باید یک مقدار مفاهیم برنامه نویسی شی گرا رو مطالعه کنید.
در برنامه نویسی شی گرا . اطلاعات(متغیر یا فیلد ها) و روشهای (متدهای )کار بر روی اطلاعات . در ساختاری به نام کلاس تعریف میشوند.
در اینجا اطلاعات همون متغیرهای برنامه هستند.
و متدها همون توابع برنامه هستند .
منتها.
متغیرها و متدها . مخصوص کلاسی که در اون قراردارند ( بسته بندی شدند) میباشند.

پس به توابعی که در شیوه برنامه نویسی شی گرا ( object oriented ) در ساختاری به نام کلاس . برای کار بر روی اطلاعات (متغیر های ) درون کلاس . به کار میروند. اصطلاحا متد میگویند.

اما به توابعی که در ساختاری به نام کلاس تعریف نمیشوند. همون تابع گفته میشه .

تعریف یک متد:

Kelas={
a:10,
b:20,
sum:function(){
console.log(this.a+this.b);
}

}
Kelas.sum();
sum(); // این خط خطا میدهد . چون تابع یا همان متد سام . فقط از طریق کلاس قابل دستیابی است . چون بسته بندی (کپسوله سازی) شده

ravand
چهارشنبه 15 خرداد 1392, 08:19 صبح
من فکر میکنم شما داری اشتباه میکنی این بحث متد در کلاس با متد در جی کوئری فرق داره.
اینو ببین: http://www.w3schools.com/jquery/jquery_ajax_load.asp

jalil_gh
چهارشنبه 15 خرداد 1392, 22:27 عصر
به طور کلی تابع یا همون function به قطعه کدی میگیم که با استفاده از یک نام خاص میتونیم اون قطعه کد رو اجرا کنیم و بهش پارامتر بدیم و ...
متد یا method هم همونه فقط وابسطه به یک شی دیگه است و قادره که از اجزای او شی استفاده کنه و یا اونا رو تغییر بده و ...

تو جی‌کوئری هم متدها قطعه کدهایی هستن که بر روی شی jQuery تعریف شدن و هر کدوم هم کار خاصی رو انجام میدن.

البته خیلی‌ها این دوتا رو به جای هم به کار می‌برن پس بهتره زیاد سخت نگیریم.

ravand
پنج شنبه 16 خرداد 1392, 11:00 صبح
متشکرم.
توی این مثالی که نوشتم به ready ,toggle,show,hide متد میگن ولی به دستورات زیر تابع میگن درسته؟

function zaher()
function makhfi()

<html>
<head>
<style type="text/css">
.mokaab
{
display:none;
background-color:#d3b2f5;
height:200px;
width:200px;
}
</style>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$('document').ready(function () {
$("button").toggle(zaher,makhfi);
});
function zaher() {
$(".mokaab").show();
}
function makhfi() {
$(".mokaab").hide();
}
</script>
</head>
<body>
<button>کلیک کنید</button>
<div class="mokaab"></div>
</body>
</html>

من به یه دلیل به این موضوع شک کردم که در آدرس زیر:
http://www.w3schools.com/jquery/jquery_events.asp
نوشته بود که روش زیر وقتی صفحه به طور کامل بارگزاری شد باعث می شود تابع اجرا شود .

$(document).ready()
درسته؟

jalil_gh
پنج شنبه 16 خرداد 1392, 22:54 عصر
من به یه دلیل به این موضوع شک کردم که در آدرس زیر:
http://www.w3schools.com/jquery/jquery_events.asp
نوشته بود که روش زیر وقتی صفحه به طور کامل بارگزاری شد باعث می شود تابع اجرا شود .

ما تو جاوااسکریپت میتونیم توابع رو به عنوان آرگومان به توابع و متدهای دیگه ارسال کنیم. تو اون لینکی هم که شما دادید منظورش از تابع او تابعیه که شما به عنوان آرگومان به متد ready ارسال کردید. یعنی هر وقت DOM لود شد، توابعی که به متد ready به عنوان آرگومان ارسال شدن یکی یکی اجرا میشن.

نکته دیگه‌ای هم که باید بهش توجه کرد اینه که وقتی شما تابعی رو در مرورگر به شکل زیر تعریف میکنید
function doSomething () {
// some code here
}
در واقع این تابع به عنوان متدی از شی window تعریف میشه و ما اون رو هم نمیتونیم تابع بدونیم.
// logs true
console.log(doSomething === window.doSomething);
از توابعی که واقعا میتونیم اونا رو تابع بنامیم میتونیم از اونایی نام ببریم که به عنوان آرگومان به متدهای addEventListener و یا setTimeout و ... به عنوان callback ارسال میکنیم.

ravand
جمعه 17 خرداد 1392, 07:19 صبح
متد یا method هم همونه فقط وابسطه به یک شی دیگه است و قادره که از اجزای او شی استفاده کنه و یا اونا رو تغییر بده و ...
اینجا منظورتون از شی چی هست ؟ می تونید یک مثال بزنید؟
متشکرم.

h_a_m_i_d
جمعه 17 خرداد 1392, 13:33 عصر
یک جواب ساده کلا متد چیزه خوبی است

ravand
جمعه 17 خرداد 1392, 21:35 عصر
یک جواب ساده کلا متد چیزه خوبی است
لطفا اسپم ارسال نکنید. این یه بحث مهمیه.
اگه کسی از من به عنوان یه برنامه نویس پرسید متد چیه؟ من باید یه جوابی براش داشته باشم نه اینکه بگم متد یه چیز خوبیه!!!!!!

jalil_gh
شنبه 18 خرداد 1392, 21:42 عصر
تو اکثر زبان های شی‌گرا ما برای ساختن اشیا از کلاس استفاده می‌کنیم. ما تو جاوااسکریپت چیزی به نام کلاس (فعلا) نداریم و از روش‌های دیگه‌ای برای ساختن اشیا استفاده می‌کنیم.
// general method
var obj = new Object();

// shortcut for the general method
var obj = {};

// constructor function
function SomeFunction () {}
var obj = new SomeFunction();

حالا ما اگه به شی obj خاصیتی اضافه کنیم و اون رو برابر با یه تابع قرار بدیم اون خاصیت میشه متدی از شی obj
obj.doSomething = function () {
// some code here
};
تو مثال بالا متد doSomething به عنوان متد شی obj ازش یاد میشه.

الان ما برای فراخوانی متد doSomething نمیتونیم اونو تنهایی به کار ببریم و باید اونو به همراه شی obj به کار ببریم.
// this is wrong and logs error
doSomething();

// we should use it this way
obj.doSomething();

eAmin
یک شنبه 19 خرداد 1392, 10:59 صبح
من به یه دلیل به این موضوع شک کردم که در آدرس زیر:
http://www.w3schools.com/jquery/jquery_events.asp
نوشته بود که روش زیر وقتی صفحه به طور کامل بارگزاری شد باعث می شود تابع اجرا شود .

$(document).ready()
درسته؟


The $(document).ready() method allows us to execute a function when the document is fully loaded.

ترجمه:‌ "متد $(document).ready() به ما اجازه می دهد تا یک تابع را وقتی سند (صفحه) بصورت کامل بارگذاری شد، اجرا کنیم."

مثلا، متد ready یک ورودی دریافت میکنه از نوع تابع که توی JavaScript بهش میگیم Callback. منظورش اینه که تابع callback اجرا میشه.


$(docuent).ready(function() { });

Variable
چهارشنبه 22 خرداد 1392, 22:19 عصر
به نظرم قبل از اینکه بری دنبال جی کوئری
اگه یه کم برنامه نویسی شی گرا کار کنی.در حد همون مفاهیمم
و بعد بری یک هفته وقت بزاری جاوااسکریپت و مباحث توابع و شی گراییشو بخونی
بعد فهم جیکوئری خیلی برات ساده میشه . حتی میتونی جیکوئری خودتو بنویسی :)