问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何理解 JavaScript 中作为参数的函数的作用域和 this

发布网友 发布时间:2022-04-24 09:33

我来回答

2个回答

热心网友 时间:2022-04-22 11:36

作用域于参数类型无关,也就是说不管参数是函数还是其他类型,这个参数的作用域只在接收这个参数的函数内有效,如下:

function test(callback){
    if(typeof callback == "function"){
        callback();
    }
    
    //此时这个参数的作用域只在test这个函数内有效,其他地方都是无效的。
}

this是一个指针类型,一般情况下是指向调用该方法或者属性的对象本身,除非指定了this的指向,否则都是指向window对象,下面这段代码希望对你的理解有帮助。

var obj = {
    fun:function(){
        this.log("这个地方的this即为obj对象");
    },
    log:function(text){
        console.log(text);
        //当然这里的this也是指向obj对象的
    }
}

function stu(){
    this.getAge = function(){
        //此时这里的this指向stu类的实例,即指向下面注释代码中的stuObj对象
        //var stuObj = new stu();
        //stu.getAge();
    }
}
function callback(){
    //此时这里的this指向下面被注释代码中的obj,因为他手动指定了this对象
    //除了call可以手动指定this之外apply也可以指定this指向
    //var obj = {name:"小明"};
    //callback.call(obj);
}

除了以上几种情况下,还有一种情况this是指向dom元素本身的,如下:

<a href="#" onclick="alert(this.href)">这个this即为这个a标签本身</a>

除了以上几种情况,this都是指向window对象的,当然不排除有一些我不清楚的情况。

热心网友 时间:2022-04-22 12:54

执行上下文和作用域之间最大的区别是:

执行上下文在运行时确定,随时可能改变;

每个执行上下文都有三个重要的属性,

1)变量对象(Variable object,VO)
2)作用域链(Scope chain)
3)this
4)还有一些附加的属性。

作用域在定义时确定,永远不会改变。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么网页突然自动关闭 网页为什么会突然自动关闭 网页自动关闭什么原因 怎么在微信里面自己组建群聊 门开在东南角,北面中间有窗,办公桌如何摆放 请推荐一款app导航系统,地图信息准确,界面友好,主要用于在境外... 急求一款app导航系统,地图信息准确,界面别太多杂乱的东西,主要用在境外... 欠了闪银3600,逾期125天,今天算了下,差不多要还6000,不还会怎么样?_百 ... 怎么进出口货物老被查验,难道被盯上了?海关是如何查验的,海关查验... 来料加工海关会查什么 外贸知识:海关查验详解 莲蓉月饼的做法步骤图,莲蓉月饼怎么做好吃 莲蓉馅蛋黄酥的家常做法大全怎么做好吃视 请问白莲蓉月饼怎么做才好吃? 莲蓉月饼怎样做好吃呢? 广式莲蓉月饼的做法,广式莲蓉月饼怎么做好吃 木糖醇莲蓉馅的做法,木糖醇莲蓉馅怎么做好吃 哪个牌子的白莲蓉馅料儿好吃? 月饼真的很好吃吗? 怎么做莲蓉馅/红糖发糕才好吃美味 美心双黄白莲蓉 双黄莲蓉 哪个好吃 豆沙和莲蓉到底有什么区别?? 莲蓉馅加熟糯米粉好不好吃 月饼里的莲蓉是什么?怎么做的? 月饼莲蓉馅的做法步骤图,月饼莲蓉馅怎么做好吃 月饼喜欢吃那种馅料的,酥皮的更好吃吗? 成都郫都区那些房产不限购? 梦见给别人背材火然后和一男人握手醒来 梦见老公的妈妈背材回家还叫我,还对我笑!,我在烧火! 周公解梦背木材爬上坡是什么意思能帮我仔细描述一下吗 没有成都购房资质,成都周边不限购的区域有哪些?怎么了解新的楼盘信息? javascript的创建和删除对象的实训报告怎么写 javascript函数、事件、对象、方法的通俗解释和他们的作用。 javascript中函数创建对象并执行的问题 js函数作用域和对象作用域里变量的不同 00 bang’s blog 写出你所知道的javascript系统函数及常用对象,并且说明用途 想跟男朋友分手该怎么说 javascript中调用函数和变量都需要创建对象吗,需要为什么,不需要又为 ... 想和男朋友分手该怎么说才委婉? JS块级作用域和私有变量实例分析 我想跟男朋友分手了!但是不知道怎么说,该怎么办? 关于javaScript中的全局变量和成员变量以及this在函数中的作用域问题... 关于javascript 中(function(){})()的作用和用法 苹果相机怎么设置九宫格 javascript用带参数的构造函数定义一个对象Cat 我的苹果手机相机怎么没有九宫格 新手求解js的对象,属性,方法,的关系。内有具体例子 在javascript中,Function对象的本质是什么? 苹果手机怎么设置九宫格相机 javascript function 参数 为什么我的苹果xs max的相机设置没有九宫格?