javascript - 将参数传递给 JavaScript 对象 Getter

标签 javascript getter

var URIController = {
    get href() {
        return url.location.href;
    }
}

我有上面的对象结构。但是 URIController.href 属性依赖于另一个对象,url

如果 url 是全局定义的,则 URIController.href 有效。但是我想手动将 url 对象传递给 href getter。

var URIController = {
    get href(url) {
        return url.location.href;
    }
}

更改了 getter 以接受 url 参数但是

URIController.href(url)

抛出错误,因为 href 不是一个函数。

是否可以在 javascript 中将参数传递给 getter?

最佳答案

Getter 不需要显式调用括号,因此不能接受参数。它们的调用是通过标准属性访问语法隐式调用的,例如URIController.href.

来自 getter documentation on MDN :

The get syntax binds an object property to a function...

  • It must have exactly zero parameters

______

如果您需要接受参数,请改用函数:

var URIController = {
    href: function (url) {
        return url.location.href;
    }
}

或者使用 ES6 对象函数简写语法:

const URIController = {
    href (url) {
        return url.location.href;
    }
}

关于javascript - 将参数传递给 JavaScript 对象 Getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37366181/

相关文章:

c# - 拥有私有(private) setter 或仅定义 getter 之间有区别吗?

swift - 为什么我们在 Swift 变量声明中使用关键字 "get"?

javascript - Google Analytics - 保持页面活跃

javascript - Android 中的 XmlHttpRequest 双重发布问题

javascript - IBM Watson Speech-to-Text 发送麦克风数据关闭连接

swift - 警告 : Attempting to access 'myProperty' within its own getter vs SwiftFormat

javascript - 在 JavaScript 中将十六进制转换为 float

javascript - RxJS - 对 maxWait 和 maxElements 窗口使用 windowWhen()

c++ - bool getter 函数不起作用

objective-c - 使用点符号调用属性的 getter 方法