Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#获取集合javascript等价物_Javascript_Class - Fatal编程技术网

C#获取集合javascript等价物

C#获取集合javascript等价物,javascript,class,Javascript,Class,javascript中是否有与以下C#代码等效的代码 我正试着做这样的事情 var list = function () { this.settings = { id: 1 }; this.id = //something } var List = new list(); alert(List.id); //alerts 1 List.id = 5; // should set thi

javascript中是否有与以下C#代码等效的代码

我正试着做这样的事情

    var list = function () {
        this.settings = {
            id: 1
        };
        this.id = //something
    }
    var List = new list();
    alert(List.id); //alerts 1
    List.id = 5; // should set this.settings.id = 5
    alert(List.settings.id); // alerts 5

虽然这个答案对c#类很好,但我仍然无法引用如下id

    var list = function() {
        this.settings = {
            _id: 0, 
            get id() { return this._id; }, 
            set id(x) { this._id = x; }
        };
        this.id = this.settings.id;
    }

    var List = new list();


    document.write(List.id + "<br />");
    List.id += 10;
    document.write(List.settings.id + "<br />");
var list=function(){
此参数。设置={
_id:0,
get id(){返回此。\u id;},
集合id(x){this.\u id=x;}
};
this.id=this.settings.id;
}
var List=新列表();
document.write(List.id+“
”); List.id+=10; document.write(List.settings.id+“
”);
这可能是因为this.settings.id只将值传递回this.id,而不是实际对象

是的,基本思想是:

function Field(val){
    var value = val;

    this.__defineGetter__("value", function(){
        return value;
    });

    this.__defineSetter__("value", function(val){
        value = val;
    });
}

示例:

这篇wiki文章详细解释了Object.defineProperties


定义设置器和定义设置器现在已经过时了。尝试跨浏览器解决方案。也在IE9中工作@克里斯尼尔森我妻子告诉我,我现在穿的所有衣服都过时了。如果你想给出答案,我会投你一票。太棒了!越小越好。在IE9以下不起作用,但刚刚在Opera、FF和Safari中测试过,效果不错。。穆乔·格雷西丝:)
function Field(val){
    var value = val;

    this.__defineGetter__("value", function(){
        return value;
    });

    this.__defineSetter__("value", function(val){
        value = val;
    });
}
var o = {
    _p: 5,
    get p() { return this._p; },
    set p(x) { this._p = x; }
};