javascript - 语法错误(声明 "class"变量)

标签 javascript

我从来没有用下面的语法编写过 JavaScript。我想做的只是在函数“showUrlLink”之外声明一个变量,正确的方法是什么?

//File test.js
    var Test =
                {
                    //Declare variable here to be used in showUrlLink
                    var test = "something";//This gives syntax error
                    showUrlLink: function() {
                        if (test === "something") {
                            //Do something
                        }
                    }
                };

提前致谢。

最佳答案

如果你想在Test对象的范围内声明一些内部变量,但只返回一个“公共(public)接口(interface)”,你应该将其包装在一个函数中:

var Test = (function(){
    //Declare variable here to be used in showUrlLink
    var test = "something";
    return {
        showUrlLink: function() {
            if (test === "something") {
                console.log( test );
            }
        }
    }
}());

现在您可以执行 Test.showUrlLink() 操作,但无法更改 Test.test 变量,因为它保存在闭包中并且无法从外部范围访问。

http://jsfiddle.net/K3P25/

另请参阅:http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html

关于javascript - 语法错误(声明 "class"变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036682/

相关文章:

javascript - 我的代码中的 "if, else if, and else"条件读取不正确

javascript - jQuery 文本大小调整插件仅适用于 Bootstrap 轮播的第一张幻灯片

javascript - 如何更改 JavaScript 中的 "this"指针?

带有 key :object 的 JavaScript json

javascript - 当我将参数传递给函数时,setTimeout 不起作用

javascript - 错误 : missing : after property id

javascript - jquery ajax https 调用给出 ERR_INSECURE_RESPONSE

javascript - 在悬停的 li 元素上相对于 li 的位置显示一个隐藏的响应式 div

javascript - 刷新过滤器文本 Bootstrap 4

javascript - 似乎无法将已翻译 270 度的文本水平居中?