如何在JavaScript中将对象转换为函数

时间:2014-05-06 19:05:06

标签: javascript jquery

如何将Object转换为函数

var FRUIT = {};
FRUIT.color={
    name: "",
    foo: function(){
        return this.name;
    },
    yellow: {
        yellow1: 0,
        yellow2: 0
    }
};

var castFunction = function(){};
$.each( FRUIT.color, function(i, prop){
    castFunction.prototype[i] = prop;
});

var classSmall = new castFunction();
var classBig = new castFunction();

classSmall.name="Yellow small Fruit";
classBig.name="Yellow big Fruit";

classSmall.yellow.yellow1=100;
classBig.yellow.yellow1=10000;

console.log( classSmall.foo() );//Yellow small Fruit ==> OK
console.log( classBig.foo() );//Yellow big Fruit ==> OK
console.log( classSmall.yellow.yellow1 );//10000 ==> why

我将它设置为100而不是10000 为什么第一类值可以从第二类改变。

实际上,如果我使用该函数,上述问题不是问题,但我只是想知道上面的错误在哪里或者确实无法完成。

1 个答案:

答案 0 :(得分:1)

试试这种方式

var A = function(foo) {                                                                                                      
    var B = function() {                                                                                                       
        return A.prototype.constructor.apply(B, arguments);
      };
      B.prototype = A.prototype;                                                                                                 
      return B;                                                                                                                  
    };