使用"这个"分配具有动态名称和值的对象属性。关键词

时间:2015-06-07 13:53:26

标签: javascript

我使用动态键和我的对象原型中的值初始化对象属性。所以我这样做:

var base_proto = {
            init_props : function (props){

                $.each(props, function(key, value) {
                    this[key] = value;      
                });
            }
        }

这不起作用,只返回没有属性的Object。

但是当我尝试这个时候.notDynamicName = notDynamicContent;在init_props中它起作用了。

基本上,键和值的动态分配就是问题所在。

那我怎么处理呢?

非常感谢您的回复。

1 个答案:

答案 0 :(得分:4)

问题是你有一个功能,它创建了一个新的范围。所以,这不是你期望的。

你可以这样做:

var base_proto = {
        init_props : function (props){
            var _this = this;
            $.each(props, function(key, value) {
                _this[key] = value;      
            });
        }
    }

甚至更好:

var base_proto = {
        init_props : function (props){

            for(var k in props)
                this[k] = props[k];      
            });
        }
    }