首页
学习
活动
专区
工具
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函数不管放在任何作用,显示的都是全局作用域中的变量名和变量值。

59310

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

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

1K100
  • 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...将原型链找到,一种是比较偷懒的将函数放在对象上,而不是原型链上。

    31820

    面试官:聊聊 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

    29920

    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 中被使用时,才是闭包。

    9410

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

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

    51120

    JavaScript执行机制:变量提升、作用链、词法作用、块级作用、闭包和this

    换句话说,词法作用是由函数的嵌套结构决定的,而不是函数的调用方式。 词法作用使得JavaScript引擎可以在编译阶段就确定变量的查找顺序。这种静态结构有助于提高代码的可读性和可维护性。...当baz函数被调用时,它可以访问foo函数作用内的变量x,即使foo函数已经执行完毕。这是因为词法作用的静态结构。 1.3 块级作用 块级作用是指由大括号{}包围的代码块内的作用。...以下是一个函数表达式的示例: console.log(bar()); // TypeError: bar is not a function var bar = function() { return...; }; 在这个示例中,由于bar是一个函数表达式,它不会发生函数提升。因此,在bar被赋值之前调用bar会导致TypeError。...函数柯里化在函数式编程中非常重要,它可以用于创建具有特定参数的新函数以及实现部分应用(Partial Application)、延迟计算(Lazy Evaluation)等高级技术。

    11910

    【译】理解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的显示绑定。

    79520

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

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

    30310

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

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

    52530

    理解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的显示绑定。

    35140

    【JavaScript】JavaScript 几个标准阐述

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

    23610

    Function.prototype.bind()

    } }; module.getX(); // 返回 81 var retrieveX = module.getX; retrieveX(); // 返回 9, 在这种情况下,"this"指向全局作用...以下展示的方法并不是最佳的解决方案且可能不应该用在任何生产环境中。 自然而然地,绑定函数适用于用new操作符 new 去构造一个由目标函数创建的新的实例。...// 这个例子可以直接在你的 javascript 控制台运行 // ...接着上面的代码继续 (译注:// 仍然能作为一个普通函数来调用 // (即使通常来说这个不是被期望发生的) YAxisPoint...这部分实现创建的函数的实现并没有caller 以及会在 get,set或者deletion上抛出TypeError错误的 arguments 属性这两个不可改变的“毒药” 。...(正确的绑定函数没有的) 这部分实现创建的绑定函数所有的 length 属性并不是同ECMA-262标准一致的:它的 length 是0,而在实际的实现中根据目标函数的 length 和预先指定的参数个数可能会返回非零的

    32410
    领券