相关疑难解决方法(0)

有没有办法让Object.freeze()成为一个JavaScript日期?

根据MDN Object.freeze()文档:

Object.freeze()方法冻结了一个对象:即阻止向其添加新属性; 防止删除现有属性; 并防止现有属性或其可枚举性,可配置性或可写性被更改.实质上,该对象实际上是不可变的.该方法返回被冻结的对象.

我原以为在日期上调用冻结会阻止对该日期的更改,但它似乎不起作用.这是我正在做的(运行Node.js v5.3.0):

let d = new Date()
Object.freeze(d)
d.setTime(0)
console.log(d) // Wed Dec 31 1969 16:00:00 GMT-0800 (PST)
Run Code Online (Sandbox Code Playgroud)

我本以为setTime要么失败要么无所事事.任何想法如何冻结日期?

javascript immutability node.js

75
推荐指数
4
解决办法
3383
查看次数

如何使用javascript代理嵌套对象

我在js bin中有这个代码:

var validator = {
  set (target, key, value) {
    console.log(target);
    console.log(key);
    console.log(value);
    if(isObject(target[key])){

    }
    return true
  }
}


var person = {
      firstName: "alfred",
      lastName: "john",
      inner: {
        salary: 8250,
        Proffesion: ".NET Developer"
      }
}
var proxy = new Proxy(person, validator)
proxy.inner.salary = 'foo'
Run Code Online (Sandbox Code Playgroud)

如果我这样做proxy.inner.salary = 555;不起作用.

但是,如果我这样做proxy.firstName = "Anne",那么它的效果很好.

我不明白为什么它不起作用递归.

http://jsbin.com/dinerotiwe/edit?html,js,console

javascript proxy ecmascript-6 es6-proxy

36
推荐指数
3
解决办法
7677
查看次数