一文讲解js中this指向问题(附代码)

lxf2023-03-12 12:01:01

其他回答《一文讲解js中this指向问题(附代码)》中,为大家介绍了解到了js中this偏向难题。下边本文来给大家掌握js中调用函数详细说明,小伙伴们看一下一下。

一文讲解js中this指向问题(附代码)

JS 调用函数详细说明

JS调用函数

什么是调用函数,官方解释:当程序流程奔跑起来时,一般情况下,应用软件(application program)会时常根据API启用裤里所事先备齐的函数公式。但有些标准库(library function)却规定运用先发送给它一个函数,还好适当的时候启用,并完成工作目标。这个被传到的、后也被调用的函数公式就称为调用函数(callback function)。

通常将一个函数B传到另一个函数公式A,而且在 需要时再调用函数A。

简言之,调整便是回朔,先理解好即将所使用的函数体,随后使用使再启用这一函数公式,我们一般把callback作为一个主要参数传到先界定的那一个函数公式。下边我们首先来说一段jquery编码:

$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});

上边jquery就是一个调用函数,最先他在执行完hide实际效果后,然后启用function调用函数。

大家再来看看一段JS编码,看一下调用函数是如何做到的:

function Buy(name,goods1,callback) {
    alert(name ' buy ' goods1);
    if(callback&&typeof(callback)==="function")
        callback();
}
Buy('xiaoming','apple',function(){
    alert("shopping finish");
});

一个很简单的代码,一开始不知道该买什么,直到购买到物品,马上把以前界定好一点的函数调用出去,最好是再加上分辨标准,由于一切前提是callback一定要一个函数,输出结果为:

xiaoming buy apple
shopping finish

闭包与调整

下边看一道闭包的题,各自点一下第一个和第四个连接点,执行结果:

var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i  ) {
    nodes[i].addEventListener('click', function() {
        console.log('You clicked element #'   i);
   });
}

这儿尽管关键是考闭包,addEventListener是一个闭包,而匿名函数是一个调用函数,i要在闭包里的自变量。在addEventListener的调整实行时,循环系统已结束,这时的自变量i被取值为node.lengthnode.length为总节点数。因此结果可想而知

You clicked element # node.length

那么要如何设置,把它传参改为函数公式,即然i自变量数值能被释放出来,那么我们就引进i,让每一次循环系统数值都储存在内存中,就行了:

var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i  ) {
(function(i) {
    nodes[i].addEventListener('click', function () {
        console.log('You clicked element #'   i);
        })
       })(i);
}

PHP调用函数

下边略说一下php中调用函数如何做到(结果显示1,2,3,4):

<?php
    $array=array(1,2,3,4);
    array_walk($array,function($value){
        echo $value;});
?>

php对每一个传到的数组元素作调整解决,下边再看一下php的闭包,应用use关键词传承功效境外的自变量:

<?php
    function getcouter(){
        $i=0
        return function() use($i)(
            echo $i;
        )};
    }
    $counter=getcounter();
    echo $counter();
    echo $counter();
?>

返回结果为:

1,1

官方网php操作方法

class hello {
function callback($a,$b) {
echo "$a,$b";
}
static function callback($c,$d){
echo "$c,$d";        
}
}
//将类名做为主要参数
call_user_func(array('hello','callback'),"hello","world");
//导出 hello,world
//将目标做为主要参数
call_user_func(array(new hello(),'callback'),"hello","world");
//将静态方法做为主要参数
call_user_func(hello::callback,"hello","world");
//导出 hello,world

其实也就基本原理而言,JS和php都是一样的,都会先界定好函数公式,随后需要时就启用来。

强烈推荐学习培训:JS视频教学

以上就是关于深层次分析js中调用函数(详细说明共享)的具体内容,大量欢迎关注AdminJS其他类似文章!