首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Loggin函数作用域,以及this。TypeError: custLog(...).bind不是函数

Logging函数作用域是指在编程中用于记录和输出日志信息的函数的作用范围。日志是开发过程中非常重要的一部分,它可以帮助开发人员追踪代码的执行过程、调试错误和监控系统运行状态。

在JavaScript中,通常使用console对象来进行日志记录。console对象提供了一系列方法,如log、error、warn等,用于输出不同级别的日志信息。通过调用这些方法,可以将日志信息输出到控制台或其他目标,以便开发人员进行查看和分析。

函数作用域是指函数内部声明的变量只在函数内部可见,外部无法访问。在Logging函数中,可以定义一些局部变量来存储日志信息,然后通过调用console对象的方法将这些信息输出。

this关键字在JavaScript中用于引用当前执行上下文中的对象。在函数中,this通常指向调用该函数的对象。但是在JavaScript中,this的指向是动态的,它的值取决于函数的调用方式。

TypeError: custLog(...).bind不是函数是一个错误提示信息,意味着尝试对一个非函数类型的值使用bind方法。bind方法用于创建一个新的函数,将其绑定到指定的对象上,并返回这个新函数。但是,只有函数类型的值才能使用bind方法,如果尝试对非函数类型的值使用bind方法,就会抛出TypeError错误。

综上所述,Logging函数作用域是用于记录和输出日志信息的函数的作用范围。this关键字用于引用当前执行上下文中的对象。TypeError: custLog(...).bind不是函数是一个错误提示信息,表示尝试对非函数类型的值使用bind方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3.关于python函数以及作用,递

五.关于函数作用。...这种我们看不到的“字典”就是作用,除了全局的作用域外,每个函数调用都会创建一个新的作用。 下面,来看一个现象。 #!...locals这个函数,根据博主亲测,当放到哪个作用,就会以字典的形式返回当前作用域中的所有名称空间的所有值(所有的变量名和变量值)。...f1函数中都调用了一次locals()函数,结果已经很明显了,在f1函数内部调用locals函数后,返回了f1函数作用域中所有的变量名以及对应的变量值,接着,又在函数外,也就是全局作用调用了一下locals...globals函数,用于返回全局变量中所有的变量名以及变量值( 名称空间)的使用情况。 globals函数不管放在任何作用,显示的都是全局作用域中的变量名和变量值。

57110

读书笔记-你不知道的JavaScript(上)

什么是作用 作用是一套规则,用于确定在何处以及如何查找变量。 编译原理 JavaScript是一门编译语言。在传统编译语言的流程中,程序中一段源代码在执行之前会经历三个步骤,统称为“编译”。...理解作用 作用 分别与编译器、引擎进行配合完成代码的解析 引擎执行时会与作用进行交流,确定RHS与LHS查找具体变量,如果查找不到会抛出异常。 编译器负责语法分析以及生成代码。...另外一种是动态作用,仍有一些编程语言在使用(比如Bash脚本、Perl中的一些模式等)。 词法作用 词法作用是一套关于引擎如何寻找变量以及会在何处找到变量的规则。...动态作用 而动态作用只关心它们从何处调用。换句话说,作用链是基于调用栈的,而不是代码中的作用嵌套。...但是 foo 此时并没有赋值(如果它是一个函数声明而不是函数表达式就会赋值)。foo()由于对 undefined 值进行函数调用而导致非法操作,因此抛出 TypeError 异常。

976100

面试官:聊聊 this 指向问题

什么情况下会涉及 this 函数作用的情况下,才会有 this 绑定问题 或者 class 类 使用 call,apply, bind 严格模式 "use strict" 非严格模式 严格模式下的...fn===>", this.a)} } obj.fn() // "小仙女" // 此时 this 指向 obj // 变体 1 var fn = obj.fn fn() // Uncaught TypeError...} } obj.b.fn() // "Ken" this 指向 window var fn = obj.b.fn fn() // "Ken" this 指向 window 从上面的观察,以及实践...,我们或许可以得出一个结论: 箭头函数 this 指向问题跟作用有关系,他会沿着作用链一层层往外找,最先找到那个具有作用,就将 this 绑定在那个作用上,如果找不到,就直接绑定在全局作用上...普通函数的 this 指向,取决于在那个对象上执行,this 就执行谁 call,apply.bind 发现个小问题,貌似 箭头函数无法在执行阶段改变 this 指向问题 var a = "Ken" var

27920

13. 精读《This 带来的困惑》

或者可以将属性放在上级作用,避免使用 this,就避免了 this 丢失带来的隐患: function getPerson(initialName) { let name = initialName...3.1 this 丢失的情况 3.1.1 默认绑定 在严格模式与非严格模式下,默认绑定有所区别,非严格模式 this 会绑定到上级作用,而 use strict 时,不会绑定到 window。...bind 除此之外,我们还可以指定回调函数作用,达到 this 指向正确原型链的效果。...= { count: 2 } foo.call(obj) 关于块级作用也是 this 相关的知识点,由于现在大量使用 let const 语法,甚至在 if 块下也存在块级作用: if (true...将原型链找到,一种是比较偷懒的将函数放在对象上,而不是原型链上。

30420

2022秋招前端面试题(一)(附答案)

闭包产生的本质当前环境中存在指向父级作用的引用手写 bind、apply、call// callFunction.prototype.call = function (context, ...args...ES5 中只存在两种作用:全局作用函数作用。...在 JavaScript 中,我们将作用定义为一套规则,这套规则用来管理引擎如何在当前作用以及嵌套子作用域中根据标识符名称进行变量(变量名或者函数名)查找AJAXconst getJSON = function...首先要了解作用链,当访问一个变量时,编译器在执行这段代码时,会首先从当前的作用域中查找是否有这个标识符,如果没有找到,就会去父作用查找,如果父作用还没找到继续向上查找,直到全局作用为止,,而作用链...,就是有当前作用与上层作用的一系列变量对象组成,它保证了当前执行的作用对符合访问权限的变量和函数的有序访问。

1.1K30

JavaScript 实践+理论(总结篇):作用、闭包、this、对象原型

在该模式下,RHS 找到一个变量当对这个变量进行不合规的操作时会抛出一个 TypeError, 而 ReferenceError 代表着在作用查找或判断失败,TypeError 代表作用查找成功了,...附录 A 动态作用作用是基于调用栈的,而不是代码中的作用嵌套的。...• 动态作用是在运行时确定的 • 词法作用关注函数从何处声明 • 动态作用关注函数从何处调用 第三章 函数作用和块作用 • 如何区分函数声明和函数表达式:如果 function 为声明中的第一个关键字...何为闭包:当函数可以记住并访问所在的词法作用时,即使函数在当前词法作用之外执行,这时就会产生闭包。 2. 严格意义上来说,一个函数返回另一个函数。 3....空的 IIFE 并不是闭包,虽然通过 IIFE 改造有用了更多的词法作用,但在 IIFE 中的所创建的作用是封闭起来的。只能通过从外传入一个参数到 IIFE 中被使用时,才是闭包。

7110

JavaScript 中 this 指向所有场景详细分析(译)

严格模式不仅对当前作用有效,它内部的作用(当前作用内定义的函数内)也会是严格模式。...一个单独 js 文件可能包含多个作用,因此不同的作用可能分别处于非严格模式和严格模式。...绑定函数 定义:执行上下文或者参数被绑定了具体值的函数。可以通过 .bind() 进行创建。原始函数和新的函数共享了相同的代码和作用,但是执行的时候拥有不同的执行上下文和参数。...6 箭头函数 定义:箭头函数是定义函数的一种简写形式,并且它绑定的上下文是词法作用确定的(简单理解就是 this 指向它定义位置的上下文)。...如果箭头函数是定义在顶级作用内(也就是函数外),this 将指向浏览器的全局对象 window,严格模式下也是一样的。

48720

《你不知道的JavaScript》:this 绑定规则

: Cannot read property 'a' of undefined } foo(); 看,非严格模式下,全局作用域中的函数调用时,函数词法作用内的this指向全局对象window。...而当严格模式时,函数调用时词法作用内的this指向undefined,报 TypeError错误。 当然上例仅是举例,在实际开发中,不应混用严格与非严格模式。...当调用foo()时,fn的上下文对象就变成全局作用的了,好嘛,到obj对象里绕了一圈又出来,绝对坑你没商量的障眼法。...Fn虽然被称为构造函数,但其实不是真正的构造函数,它本质还是一个普通的函数,只是当它被用来new一个新对象时,才称其为构造函数,正确的理解应该是对函数的“构造调用”。...当执行到 new 函数调用 时,如果函数中没有return出对象或者return的不是对象类型,则new表达式就会返回一个全新对象,否则返回的是函数内部return的对象。

51330

【译】理解JavaScript中的This,Bind,Call和Apply

备注:如果你对JavaScript中得作用概念不熟,你可以去[Understanding Variables, Scope, and Hoisting in JavaScript温习一下。...function printThis() { console.log(this) } printThis() Output undefined 总的来说,使用严格模式更加安全,能减少this产生的非预期作用的可能性...在嵌套对象中,this指向方法当前对象的作用。在下面这个例子,details对象中的this.symbol指向details.symbol。...类构造器 类上的构造函数作用函数上的构造函数作用相同。在Understanding Classes in JavaScript中,你可以了解到更多的关于构造函数和ES6类的相似和不同的地方。...总结 在这篇文章中,你学到了关于JavaScript的this,和基于隐式运行时绑定的可能具有的不同值,以及通过bind,call和apply的显示绑定。

77220

一文带你了解call、apply、bind的区别及源码实现

前言 call、apply和bind都是JavaScript中Function对象的原型方法,它们的作用主要是改变函数的执行上下文(即this的值)以及传递参数。...它包含了当前执行环境中的所有信息,如变量、函数声明、参数(arguments)、作用链,以及this等信息。 在JavaScript中,执行上下文主要有两种类型:全局执行上下文和函数执行上下文。...全局变量:在函数外部声明的变量,可以在函数内部直接访问。 内置对象:如Math、Array等,它们提供了一些内置的方法和属性。 其他执行上下文相关的信息,如调用栈、作用链等。...词法环境的内部有两个组件:加粗样式:环境记录器:用来储存变量个函数声明的实际位置外部环境的引用:可以访问父级作用 (3)创建变量环境组件 变量环境也是一个词法环境,其环境记录器持有变量声明语句在执行上下文中创建的绑定关系...第一种是函数调用模式,当一个函数不是一个对象的属性时,直接作为函数来调用时,this 指向全局对象。 第二种是方法调用模式,如果一个函数作为一个对象的方法来调用时,this 指向这个对象。

15810

理解JavaScript中的This,Bind,Call和Apply

备注:如果你对JavaScript中得作用概念不熟,你可以去[Understanding Variables, Scope, and Hoisting in JavaScript温习一下。...function printThis() { console.log(this) } printThis() Output undefined 总的来说,使用严格模式更加安全,能减少this产生的非预期作用的可能性...在嵌套对象中,this指向方法当前对象的作用。在下面这个例子,details对象中的this.symbol指向details.symbol。...类构造器 类上的构造函数作用函数上的构造函数作用相同。在Understanding Classes in JavaScript中,你可以了解到更多的关于构造函数和ES6类的相似和不同的地方。...总结 在这篇文章中,你学到了关于JavaScript的this,和基于隐式运行时绑定的可能具有的不同值,以及通过bind,call和apply的显示绑定。

32440

【JavaScript】JavaScript 几个标准阐述

Functiion.prototype.bind ES中bind()方法比较常用。bind()方法会创建一个新函数——绑定函数。...当调用绑定函数,绑定函数会以创建它时传入bind()方法的第一个参数作为this,以传入bind()方法的第二个以及以后的参数和绑定函数运行时本身的参数按照顺序作为原函数的参数来调用。...,且只能在会计作用内生效; ● const声明的变量必须进行初始化,不能被再次修改赋值; ● let、const在全局作用下声明的变量不会作为属性添加到全局作用对象里面,与var不同; ●...箭头函数 这个短函数的声明更加方面。 注意: 箭头函数没有完整的执行上下文,因为其this和外层的this相同。它的执行上下文只有变量对象和作用链,没有this值。...js中代码的执行上下文由变量对象、作用链和this值组成。但箭头函数与外层执行上下文共享this值。如果需要创建具有独立上下文的函数,就不要使用箭头函数

20510

嘿,你真的懂this吗?

在箭头函数中,this 的指向是由外层(函数或全局)作用来决定的。 当然,真实环境多种多样,下面我们就来根据实战例题逐一梳理。...call、apply、bind 基本都能实现这一功能,起到确定 this 指向的作用 Function.prototype.call( ) call 方法可以指定 this 的指向(即函数执行时所在的的作用...从上面代码可以看到,这个方法起作用的前提是,被处理的对象必须有 length 属性,以及相对应的数字键。...箭头函数的 this 指向 当我们的 this 是以函数的形式调用时,this 指向的是全局对象。 不过对于箭头函数来讲,却比较特殊。箭头函数的 this 指向始终为外层的作用。...实际上刚才我们有讲过,箭头函数的 this 指向与普通函数不一样,它的 this 指向始终是指向的外层作用。所以这里的 this 实际上是指向的全局对象。 如果证明呢?

49920
领券