تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ عیلرضا شهریاری
تفاوت بین ()bind و ()call در جاوا اسکریپت
جامعه جاوا اسکریپت ایجاد شده در ۱۱ بهمن ۱۴۰۰

سلام

در کد زیر و با استفاده از ()bind

متد display بعد از 3 ثانیه نمایش داده می‌شود.

چرا زمانی که به جای ()bind از ()call استفاده میکنم, 3ثانیه تاخیر اعمال نمیشه؟ و بلافاصله متد display اجرا میشه ؟؟؟

<html>
<body>

<p id="demo">p>

<script>
const person = {
  firstName:"John",
  lastName: "Doe",
  display: function() {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
let display = person.display.bind(person);
setTimeout(display, 3000);
script>
body>
html>

سلام

در call مسقتیم function رو اجرا میکنه و کپی از function تون ایجاد نمیکنه که بخواهید به عنوان function به setTimeout پاس بدید ولی bind یه کپی از function تون ایجاد میکنه

موفق باشید.

بهترین پاسخ
امیر طهماسبی ۱۱ بهمن ۱۴۰۰، ۱۳:۵۱