相关疑难解决方法(0)

SyntaxError:在严格模式下使用const

我正在使用node.js,并在我正在使用的一个js文件const"strict mode".当试图运行它时,我收到一个错误:

SyntaxError: Use of const in strict mode.
Run Code Online (Sandbox Code Playgroud)

这样做的最佳做法是什么?

编辑:

'use strict'
const MAX_IMAGE_SIZE = 1024*1024; // 1 MB
Run Code Online (Sandbox Code Playgroud)

javascript node.js

238
推荐指数
7
解决办法
24万
查看次数

将全局变量应用于Vuejs

我有一个javascript变量,我想在实例化时全局传递给Vue组件,因此每个注册的组件都将它作为属性或者可以全局访问.

注意::我需要将vuejs的这个全局变量设置为READ ONLY属性

vue.js vue-component vuejs2

55
推荐指数
4
解决办法
8万
查看次数

在JavaScript中定义只读属性

给定一个对象obj,我想定义一个只读属性'prop'并将其值设置为val.这是正确的方法吗?

Object.defineProperty( obj, 'prop', {
    get: function () {
        return val;
    }
});
Run Code Online (Sandbox Code Playgroud)

结果应该是(for val = 'test'):

obj.prop; // 'test'
obj.prop = 'changed';
obj.prop; // still 'test' since it's read-only
Run Code Online (Sandbox Code Playgroud)

这个方法 很有用:http://jsfiddle.net/GHMjN/
我只是不确定这是否是最简单/最顺利/最合适的方式...

javascript

51
推荐指数
2
解决办法
4万
查看次数

如何在Javascript中创建变量/对象?

可能重复:
可以在纯JavaScript中实现只读属性吗?

我有一个Object,我只想在构造时定义它.如何防止对象引用被更改?

javascript reference object readonly

27
推荐指数
2
解决办法
4万
查看次数

防止覆盖Javascript函数

我在JavaScript中使用模块化模式.我想知道我们是否可以阻止公共模块被覆盖.例如,在function1下面的代码中,function2,function3和function4可以在外面访问,但我不想覆盖.如果重写这些函数,那么我希望编译器生成错误消息

"use strict";

var $ = (function(){
return{
      function1 : function(){
          alert("this is Function1");
      },
      function2 : function(){
          alert("this is Function2");
      },
      function3 : function(){
          alert("this is Function3");
      },
      function4 : function(){
          alert("this is Function4");
      }
    };
}());


$.function1(); //will alert - this is Function1
$.function2(); //will alert - this is Function2

/* 
  I don't want to do this, If I do, then I want the compiler to generate an   
  error message
*/
$.function3=function(){
    alert('function 3 …
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
3986
查看次数

创建任何对象的只读/不可变副本(包括深层属性)

如何在JavaScript中创建对象的只读/不可变版本,其属性无法更改?这也应该适用于任何子对象的属性等.

我所遇到的所有方法(Object.defineProperty,Object.freeze等)仅适用于对象的顶级属性,但不适用于子对象.

(可能的用例:在特定模块中创建/修改对象settingsconfiguration类型对象后,需要以不可变的形式将其公开给程序的其余模块.)

javascript const object readonly immutability

3
推荐指数
1
解决办法
1292
查看次数

对象只读属性

我正在阅读关于只读属性的这个问题,我发现了这个片段:

var myObject = {
    get readOnlyProperty() { return 42; }
};

alert(myObject.readOnlyProperty); // 42
myObject.readOnlyProperty = 5;    // Assignment is allowed, but doesn't do anything
alert(myObject.readOnlyProperty); // 42
Run Code Online (Sandbox Code Playgroud)

现在,我知道隐藏范围,你可以使用IIFE,也可以使变量或属性"私有",但我不明白的是:

为什么允许转让,如果允许,怎么可能没有发生?在这个片段中没有推断范围,所以我不明白JS中的某些东西如何推断私有属性.

javascript object

3
推荐指数
1
解决办法
623
查看次数

是否可以创建一个不可编辑的JavaScript对象?

例如,说我有他的功能:

var person = (function(){
    var age = "will"

    function shoutAge(){
        alert(age)
    }

    return {
        shoutAge
    }
})()
Run Code Online (Sandbox Code Playgroud)

创建完成后,我可以这样做:

person.age = 45;
Run Code Online (Sandbox Code Playgroud)

当然,这不是人的范围内的年龄,但这可能会引起混淆.

我把它更改为使用const:

const person = (function(){
    var age = "will"

    function shoutAge(){
        alert(age)
    }

    return {
        shoutAge
    }
})()
Run Code Online (Sandbox Code Playgroud)

但我仍然可以添加自定义属性.

我误解了const的用途,你无法重新分配变量,但你可以很好地添加属性.

但是有没有办法让它不可编辑,或者是某些因某些原因不应该做的事情?

javascript

2
推荐指数
1
解决办法
58
查看次数

在我的chrome webstore应用程序中禁用inspect元素/ javascript控制台?

我想知道是否可以在清单文件或其他地方指定属性,并在我的应用程序窗口中禁用javascript控制台.禁用javascript控制台将不允许用户只是给自己钱,他们将被迫正确地玩游戏.有谁知道是否可以在应用程序中禁用javascript控制台?它可能会出现在Chrome的未来版本中吗?

javascript google-chrome google-chrome-devtools google-chrome-app

0
推荐指数
1
解决办法
3353
查看次数

是否可以在 JavaScript 对象文字表示法中创建只读成员?

我有以下 JavaScript 对象文字表示法对象

var Parameters= {
    modal_window:{
        backdrop:true,
        keyboard:true,
        show:true,
        remote:false,
        type:{
            normal:function(){
                this.footer.button.accept.type='btn btn-primary';
                this.header.type='modal-header';
            },
            success:function(){
                this.footer.button.accept.type='btn btn-success';
                this.header.type='modal-header alert alert-success';
            },
            info:function(){
                this.footer.button.accept.type='btn btn-info';
                this.header.type='modal-header alert alert-info';
            },
            error:function(){
                this.footer.button.accept.type='btn btn-danger';
                this.header.type='modal-header alert alert-error';
            },
            warning:function(){
                this.footer.button.accept.type='btn btn-warning';
                this.header.type='modal-header alert';
            }
        }
    },
    header:{
        title:undefined,
        type:this.window.type.normal.header
    },
    footer:{
        button:
        {
            accept:{
                title:'Accept',
                click:undefined,
                type:undefined
            },
            cancel:{
                title:'Cancel',
                click:undefined
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

是否可以使 header.type 和 footer.button.accept.type 只读变量,只能通过 window.type.normal、window.type.success 等更改?

澄清: 我想在这里做一些澄清。我的Parameters.header.type 应该是只读的并且应该有默认值。当用户选择例如Parameters.modal_window.type.normal时,必须更改Parameters.header.type。

javascript

0
推荐指数
1
解决办法
2575
查看次数