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

在Javascript中将"this"赋给变量

在JavaScript中,this是一个特殊的关键字,它表示当前执行上下文的对象。在不同的上下文中,this的值会有所不同。通常,在函数中使用this会指向全局对象,而在对象的方法中,它会指向调用该方法的对象。为了在JavaScript中将this赋给变量,你可以使用以下方法:

代码语言:javascript
复制
function myFunction() {
  var self = this;
  console.log(self);
}

var myObject = {
  myMethod: function() {
    var self = this;
    console.log(self);
  }
};

myFunction(); // 输出全局对象
myObject.myMethod(); // 输出myObject对象

在上面的代码中,我们在myFunction函数和myObject对象的myMethod方法中分别将this赋给了self变量。这样,我们就可以在函数内部使用self变量来访问当前执行上下文的对象。

总结一下,在JavaScript中,我们可以使用变量self来存储this的值,以便在函数或对象方法中访问当前执行上下文的对象。

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

相关·内容

  • python把局部变量赋值全局变量_局部变量初值

    讲原因之前,需要先知道python中变量的搜索顺序,这个顺序是 LGB (不考虑闭包情况)即local本地,global全局,builtin内建。...比如: a = 1 def test(): a = 3 print(a) test() 函数内声明了局部变量 a ,在打印中使用,本地环境中命中,因此使用的是 3。...__code__.co_varnames) # (‘c’, ‘a’) 因此,函数test执行前,变量 c 就已经被声明局部变量环境中了,而不是我们自认为的当赋值语句运行后才会在局部变量里。...这部分代码 ceval.c 中,详见 ceval.c TARGET(STORE_NAME) { PyObject *name = GETITEM(names, oparg); PyObject *...回到本地中,本地变量的符号表会保存在静态信息里面,我猜测搜索变量时有优先去静态信息中得到信息,来更快的知道变量应该是局部还是全局中查找吧。

    2.3K10

    JavaScript 正确处理变量

    1.建议使用 const,要么使用 let 用 const 或 let 声明自己的 JavaScript 变量。...把变量保持最小作用域中是提高可读性的一个好习惯。...middle 和 middleItem 是函数的开头声明的,所以这些变量 binarySearch() 函数的整个作用域内可用。...易于使用 我总是习惯于函数开始的时候去声明所有变量,尤其是写一些比较大的函数时。但是这样做会使我函数中使用变量的意图变得非常混乱。 所以应该在变量声明时应该尽可能靠的近使用位置。... JavaScript 中使用变量时,首选 const,其次是 let。 尽可能缩小变量的作用域。同样,声明变量时要尽可能靠近其使用位置。 合理的命名是非常重要的。

    60730

    Linux使用技巧:linux下将命令值shell变量

    很多小伙伴写shell脚本的时候需要把命令输出的值一些变量,使得脚本在运行过程中能够顺利使用这些变量。...例如:很多时候我们就需要获取当前目录的绝对路径,pwd这个命令大家熟悉不过,可是要把这个命令的输出值变量就不知道何从下手了。...莫慌,办法还是有的,我们可以把这个命令的输出值一个叫pwd的变量(当然,你也可以随意命名一个变量名称)。...第9行代码中,我们直接输出最近10次登陆的详情,这属于是直接使用,第10行代码中我们使用了变量,实际运行结果与第9行一致。...其他方式希望小伙伴们评论区展开讨论,大家一起进步!感觉动手去试试吧!

    3K30

    4种JavaScript中交换变量的方法

    本文中,您将了解大约4种交换方式(2种使用额外的内存,而2种不使用额外的内存)。 1、解构赋值 解构赋值语法(ES2015的功能)使您可以将数组的项提取到变量中。...让我们使用解构分配交换变量 a和 b: let a = 1;let b = 2; [a, b] = [b, a]; a; // => 2b; // => 1 第一步,解构的右侧,创建一个临时数组[b,...尽管这种方法不使用临时变量,但有很大的局限性。 首先,您只能交换整数。 其次,第一步a = a + b进行加法时要注意数字溢出(总和必须小于Number.MAX_SAFE_INTEGER)。...提醒一下,这是 XOR 真值表: a b a ^ b 0 0 0 1 1 0 0 1 1 1 0 1 JavaScript中,按位 XOR 运算符 n1 ^ n2 对n1和n2数字的每一位执行 XOR...使用按位XOR运算符交换变量有局限性:您只能交换整数。 5、结论 JavaScript提供了很多交换变量的好方法,无论有没有额外的内存。

    3.1K30

    程序中变量名这样写,就是自己挖坑

    ,看起来在任何程序中都可以用,对于看的人来说就是灾难,因为要想半天或者查看上下文才知道你写的变量是什么意思,别人修改和调试带来很大麻烦。...所以如果你的代码不仅仅是自己看的,就尽量不要再这么写,多使用描述性变量名称和命名常量编写代码,养成一个变量命名的好习惯。...然后,代码审查中,确保执行这些书面标准。...,所以最好这个转换数值赋予变量名,比如: USD_TO_AUD_CONVERSION_RATE = 1.61 price_in_aud = price_in_usd * USD_TO_AUD_CONVERSION_RATE...REVOLUTIONS_PER_MINUTE = 60 revolution_count = minutes_elapsed * REVOLUTIONS_PER_MINUTE 以上就是代码变量命名过程中需要注意的一些细节

    50210

    Python中变量名这样写,就是自己挖坑

    导读:为了图省事,使用了简单而无实际含义的变量及数值,看起来在任何程序中都可以用,对于看的人来说就是灾难。如果你的代码不仅仅是自己看的,就尽量不要再这么写。...,看起来在任何程序中都可以用,对于看的人来说就是灾难,因为要想半天或者查看上下文才知道你写的变量是什么意思,别人修改和调试带来很大麻烦。...所以如果你的代码不仅仅是自己看的,就尽量不要再这么写,多使用描述性变量名称和命名常量编写代码,养成一个变量命名的好习惯。...然后,代码审查中,确保执行这些书面标准。...REVOLUTIONS_PER_MINUTE = 60 revolution_count = minutes_elapsed * REVOLUTIONS_PER_MINUTE 以上就是代码变量命名过程中需要注意的一些细节

    64630

    ES6 新特性之 let, const : JavaScript变量方面的改进。

    let : 块级作用域 我们知道,JavaScript是没有块级作用域的,如果在块内使用var声明一个变量,它在代码块外面仍旧是可见的: if (true) { var foo = 3; }...< 9; i++) { var j = i; } console.log(i); // 9 console.log(j); // 8 可以看到,在上面代码中,我们虽然是块内声明的变量...,但代码块执行完毕后,依然可以访问到相应的变量,说明JavaScript中没有块级作用域的。...而ES6规范开发者带来了块级作用域(终于跟 C,Java,Kotlin 等语言保持一致了),如果把var换成let命令,我们就可以获得一个块级变量: if (true) { let foo.../Statements/let https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const http

    32220

    javascript中如何将字符串转成变量或可执行的代码?

    有这样一个需求:当前作用域内有未知的一些变量,其中一个函数中可以拿到某个变量名字符串,怎么能在函数内通过传进来的字符串取到作用域链中的变量值,示例小 demo 如下: const name = '周小黑...' const age = 18 /** * @param {String} e 变量名字符串 * @returns value 通过变量名字符串作用域链中取到的变量值 */ function...主要有三种方式: eval() 函数 eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,所以下面的字符串可以正确取到变量对应的值,eval 对比 new Function 和...setTimeout 定时器 setTimeout 的第一个参数我们平时都是传一个函数,它其实也是可以传字符串进去的,浏览器中是可以正常执行的,node环境中会报错。...实际上浏览器中也是不推荐这么用的,另外需要注意的是字符串中的变量只能访问全局作用域,不能访问局部作用域,如果全局作用域中没有,就是 undefined。

    77430

    用动画解释 Javascript 是如何运行的!结果一目了然!

    然后我们将a和b的值相加并将其存储sum变量中。 让我们看看JavaScript如何在浏览器中执行代码: 浏览器使用两个组件创建一个全局执行上下文,即内存和代码组件。...当它遇到var a = 2时,它在内存中将2赋值'a'。直到现在,'a'的值还没有定义。 同样的,它对b也有同样的作用。它把4赋值b。然后它计算和存储在内存中的值是6。...下面是令人兴奋的部分,当JavaScript运行函数时,它将在全局执行上下文中创建一个执行上下文。 当它遇到var a = 2时,它在内存中将2赋值'n'。...在为函数内的所有变量分配内存之后,它将逐行执行代码。它将获取num的值,num的值等于第一个变量的2,然后它将计算ans。ans计算完毕后,它将返回square2的值。...现在它将对第7行或square4变量执行类似的过程,如下所示。 一旦所有代码执行完毕,全局执行上下文也将被销毁,这就是JavaScript幕后执行代码的方式。

    1.1K20

    JavaScript ES2021 最值得期待的 5 个新特性解析

    写本文时,本文提到的新的 JavaScript 提案功能已进入第 4 阶段,并且几乎肯定会包含在 ES2021 中。你已经可以开始 最新版本的浏览器,Node.js 和 Babel 中使用。...有了这些添加,JavaScript 中将总共有四个诺言组合器,每个组合器支持不同的用例。...(a = b); // Only assigns if a is nullish 5.1 具体例子 带有 && 运算符的逻辑赋值运算符 仅当 LHS 值为真时,才将 RHS 变量 LHS 变量。...ways // 1. num1 && (num1 = num2) // 2. if (num1) num1 = num2 带有 || 的运算符逻辑赋值运算符 仅当 LHS 值为假时,才将 RHS 变量...仅当 LHS 为 undefined 或仅为 null 时,才将 RHS 变量 LHS 变量。 // Logical Assignment Operator with ??

    63010

    JavaScriptJavaScript 运算符 ⑤ ( 赋值运算符 | 基础赋值运算符 与 复合赋值运算符 )

    = 取模等 : %= 有符号左移等 : <<= 有符号右移等 : >>= 无符号左移等 : <<<= 无符号右移等 : >>>= 1、赋值运算符 概念 JavaScript 语言中 , " 赋值运算符...3 var num = 3; 2、基础赋值运算符 与 复合赋值运算符 JavaScript 语言中 , 除了 最基础的 " 赋值运算符 " = 之外 , 还有很多 " 复合赋值运算符 " ,..., 然后将运算结果左侧的变量 ; // 为 变量 num 分配 数字类型值 3 var num = 3; // 为 num 变量 加 10 , 然后将运算结果 , 赋值 num 变量 num...+= 10; console.log(num); // 输出 : 13 减等 : -= , 将 赋值运算符 左侧的变量 减去 右侧的值 , 然后将 运算结果 左侧的变量 ; // 为 变量 num...除以 右侧的值 , 然后将 运算结果 左侧的变量 ; // 为 变量 num 分配 数字类型值 3 var num = 3; // 为 num 变量 除以 10 , 然后将运算结果 , 赋值

    11710

    数据分析自动化 数据可视化图表

    数据已读取到浏览器变量中,怎样赋值JavaScript变量呢?首先新建一个脚本代码步骤,定义相JavaScript变量等于相应的浏览器变量即可。...首先创建一个脚本变量步骤,代码区域定义JavaScript变量text,并把浏览器变量“读取txt”的值给它。...首先新建一个脚本变量步骤,代码区域定义JavaScript变量xml,并把浏览器变量“读取xml”的值给它。输入代码编辑窗口中,可以点击鼠标右键,调出浏览器变量选择菜单,选择相应的浏览器变量。...下一步需要让JavaScript使用浏览器变量中的json文件数据。首先新建一个脚本变量步骤,代码区域定义JavaScript变量json,并把浏览器变量“读取json”的值给它。...项目管理栏中,新建“脚本代码”步骤,并重命名为“引用数据库查询结果”。输入代码框定义JavaScript变量db,并把“执行Sql查询”结果值给它。

    2.9K60
    领券