【问题标题】:How do i use this in javascript我如何在javascript中使用它
【发布时间】:2022-01-14 19:21:36
【问题描述】:

我正在尝试访问我在函数中创建的数组的长度。如何使用this 访问它?

这是我的代码:

let hashtable = new Arrary(50)
// create a hashfunction 
let gethash = (key)=>{
    // make sure all value passed in are strings 
        let keyStr = key.toString();
        let sum = 0
        for (let i = 0; i < keyStr.length; i++) {
            sum =+ keyStr.charAt(i)
        }
        return sum % this.hashtable.length

}

我正在学习数据结构和算法中的哈希图。我想使用哈希表的长度来确保我的哈希函数落在数组的大小之间。

【问题讨论】:

  • 关于散列函数的说明:它将任何给定字符串的所有排列映射到相同的散列,因为它不考虑字符的位置。

标签: javascript algorithm data-structures character-encoding hashmap


【解决方案1】:

没有this 关键字就不能工作吗?

let hashtable = new Arrary(50)
// create a hashfunction 
let gethash = (key)=>{
    // make sure all value passed in are strings 
        let keyStr = key.toString();
        let sum = 0
        for (let i = 0; i < keyStr.length; i++) {
            sum =+ keyStr.charAt(i)
        }
        return sum % hashtable.length

}

您没有访问绑定到类或对象的内容,因此您应该能够将其视为普通变量。


更多关于this关键字:

在大多数情况下,this 的值取决于函数的调用方式(运行时绑定)。执行时不能通过赋值来设置,每次调用函数时可能都不一样。 ES5 引入了 bind() 方法来设置函数的 this 的值,而不管它是如何被调用的,ES2015 引入了不提供自己的 this 绑定的箭头函数(它保留了封闭词法上下文的 this 值)。

Source

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 2011-09-02
    • 2018-04-24
    • 2018-03-03
    • 2016-11-09
    • 2018-08-03
    • 2010-11-11
    • 1970-01-01
    相关资源
    最近更新 更多