Passing Argument to JavaScript Object Getter

前端 未结 3 735
天涯浪人
天涯浪人 2021-02-02 09:53
var URIController = {
    get href() {
        return url.location.href;
    }
}

I have above object structure. But URIController.href pro

3条回答
  •  无人共我
    2021-02-02 10:48

    In your example you are not invoking the getter, but rather a function on the object called href, which doesn't exist. But the property href does exist.

    Getters do not require explicit invocation with parentheses and cannot therefore accept arguments. Their invocation is implicit via standard property access syntax, e.g. URIController.href.

    From getter documentation on MDN:

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

    • It must have exactly zero parameters

    ______

    If you need to accept arguments, use a function instead:

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

    Or using ES6 object function shorthand syntax:

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

提交回复
热议问题