×ðÁú¿­Ê±

jsÖÐcallµÄÓ÷¨

call ÒªÁìÔÊÐíº¯ÊýÔÚÖ¸¶¨¹¤¾ßµÄÉÏÏÂÎÄÖÐÖ´ÐУ¬ÓÃÓÚ£º£¨1£©¸ü¸Äº¯ÊýµÄ this °ó¶¨ £»£¨2£©×ª´ïÌØÊâ²ÎÊý £»£¨3£©Ä£Äâ¼ÌÐø£¬½¨ÉèÒ»¸öй¤¾ß²¢¼ÌÐøÁíÒ»¸ö¹¤¾ßµÄÊôÐÔºÍÒªÁì ¡£

call ÒªÁìÔÚ JavaScript ÖеÄÓ÷¨

½ç˵£º

call ÒªÁìÔÊÐíÒ»¸öº¯ÊýÔÚÖ¸¶¨µÄ¹¤¾ß£¨thisArg£©ÉÏÏÂÎÄÖб»Å²Óã¬×ÝÈ»¸Ãº¯Êý×î³õ²»Êǰ󶨵½¸Ã¹¤¾ß ¡£

Óï·¨£º

function.call(thisArg, arg1, arg2, ...)

µÇ¼ºó¸´ÖÆ

ÆäÖУº

function£ºÒªÅ²Óõĺ¯Êý ¡£

thisArg£ºÖ¸¶¨º¯ÊýÖ´ÐÐʱ this Òªº¦×ÖËù°ó¶¨µÄ¹¤¾ß ¡£

arg1, arg2, …£ºÒª×ª´ï¸øº¯ÊýµÄ²ÎÊý ¡£

Ó÷¨£º

¸ü¸Äº¯ÊýµÄÖ´ÐÐÉÏÏÂÎÄ£º

call ÒªÁì¿ÉÒÔÓÃÀ´¸ü¸Äº¯ÊýµÄÖ´ÐÐÉÏÏÂÎÄ£¬¼´ this Òªº¦×ÖËù°ó¶¨µÄ¹¤¾ß ¡£ÕâÔÚÐèÒªÔÚ²î±ð¹¤¾ß¼ä¹²ÏíÒªÁìµÄÇéÐÎϺÜÊÇÓÐÓà ¡£

ÀýÈ磺

const person1 = { name: "John" };
const person2 = { name: "Jane" };

function greet() {
  console.log(`Hello, ${this.name}!`);
}

// ʹÓà call ¸ü¸ÄÖ´ÐÐÉÏÏÂÎÄ
greet.call(person1); // Êä³ö£º"Hello, John!"
greet.call(person2); // Êä³ö£º"Hello, Jane!"

µÇ¼ºó¸´ÖÆ

ת´ïÌØÊâ²ÎÊý£º

call ÒªÁ컹¿ÉÒÔÓÃÀ´×ª´ïÌØÊâ²ÎÊý¸øº¯Êý ¡£ÕâÔÚÐèÒªÏòº¯Êý¶¯Ì¬×ª´ï²ÎÊýµÄÇéÐÎϺÜÊÇÓÐÓà ¡£

ÀýÈ磺

function addNumbers(a, b) {
  return a + b;
}

// ʹÓà call ת´ïÌØÊâ²ÎÊý
const result = addNumbers.call(null, 1, 2, 3); // Êä³ö£º6

µÇ¼ºó¸´ÖÆ

Ä£Äâ¼ÌÐø£º

call ÒªÁì¿ÉÒÔÓÃÀ´Ä£Äâ¼ÌÐø£¬¼´½¨ÉèÒ»¸öй¤¾ß²¢¼ÌÐøÁíÒ»¸ö¹¤¾ßµÄÊôÐÔºÍÒªÁì ¡£

ÀýÈ磺

const Parent = function (name) {
  this.name = name;
};

Parent.prototype.greet = function () {
  console.log(`Hello, ${this.name}!`);
};

const Child = function (name) {
  Parent.call(this, name); // ŲÓø¸Àà½á¹¹º¯Êý
};

// ¼ÌÐø¸¸ÀàÒªÁì
Child.prototype = Object.create(Parent.prototype);

const child = new Child("John");
child.greet(); // Êä³ö£º"Hello, John!"

µÇ¼ºó¸´ÖÆ

×¢ÖØ£º

call ÒªÁìÖ»»á¸ü¸Äº¯ÊýµÄÖ´ÐÐÉÏÏÂÎÄ£¬²»»áÓÀÊÀ°ó¶¨¸Ãº¯Êýµ½Ö¸¶¨µÄ¹¤¾ß ¡£

¹ØÓÚ¼ýÍ·º¯Êý£¬call ÒªÁì²»Æð×÷Óà ¡£

ÒÔÉϾÍÊÇjsÖÐcallµÄÓ÷¨µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿