PDA

View Full Version : کدام روش بهتر است



jamejam123
سه شنبه 05 فروردین 1393, 02:27 صبح
سلام
به این دو نوع روش برنامه نویسی یه نگا بندازید.
در حالی که هر دو نوع کار یکسانی انجام می دهند به نظرتان کدام بهتر است؟چرا؟

روش اول

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<div id="one" style="width:100px; height:30px; background:#CCC; padding:40px;"></div>

<script type="text/javascript">
(function(){
document.getElementById('one').addEventListener('c lick',function(){yes(this)})

function yes(ok){
ok.style.backgroundColor='red';
}
})();

</script>
</body>
</html>


روش دوم

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>

<div id="one" style="width:100px; height:30px; background:#CCC; padding:40px;"></div>

<script type="text/javascript">

document.getElementById('one').onclick=function(){
this.style.backgroundColor='red';
}

</script>
</body>
</html>


ممنون

anotheruser
سه شنبه 05 فروردین 1393, 09:14 صبح
سلام
به این دو نوع روش برنامه نویسی یه نگا بندازید.
در حالی که هر دو نوع کار یکسانی انجام می دهند به نظرتان کدام بهتر است؟چرا؟

روش اول

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<div id="one" style="width:100px; height:30px; background:#CCC; padding:40px;"></div>

<script type="text/javascript">
(function(){
document.getElementById('one').addEventListener('c lick',function(){yes(this)})

function yes(ok){
ok.style.backgroundColor='red';
}
})();

</script>
</body>
</html>


روش دوم

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>

<div id="one" style="width:100px; height:30px; background:#CCC; padding:40px;"></div>

<script type="text/javascript">

document.getElementById('one').onclick=function(){
this.style.backgroundColor='red';
}

</script>
</body>
</html>


ممنون

سلام ، اولی مزیتش اینه که می تونید چندین رویداد رو با استفاده از این متد (AddEventListener) به عنصر مورد نظر نیسبت بدین منتها این متد در .رژن های 9 به پایین IE جوب نمیده (باید از متد attachEvent استفاده کنین)، دومی اما تو همه مرور گرها و ورژن ها کار میکنه منتها با این روش فقط یک رویداد رو می تونین به المانتون نسبت بدین ،

parser
سه شنبه 05 فروردین 1393, 11:46 صبح
سلام ، اولی مزیتش اینه که می تونید چندین رویداد رو با استفاده از این متد (AddEventListener) به عنصر مورد نظر نیسبت بدین منتها این متد در .رژن های 9 به پایین IE جوب نمیده (باید از متد attachEvent استفاده کنین)، دومی اما تو همه مرور گرها و ورژن ها کار میکنه منتها با این روش فقط یک رویداد رو می تونین به المانتون نسبت بدین ،

میشه بیشتر توضیح بدین

cups_of_java
سه شنبه 05 فروردین 1393, 12:04 عصر
علاوه بر چیزی که دوستمون گفت، تو کد اول تقسیم بندی منظم تری از توابع داری یعنی تابع handler رویداد شما از کد اتصال رویداد به صفحه جدا شده.
همچنین تو کد اول یه closure درست شده و کد تو اون قرار داده شده و این باعث میشه یه حوزه محدود و local در اختیار شما باشه و کمتر احتمال خراب کاری از طریق دسترسی به متغیر های سراسری وجود داشته باشه.