2015-05-21 122 views
0

我有一個類似的代碼:作爲Javascript中原型的對象屬性的函數?

var thing = function (prop1, prop2, prop3) { 
    this.prop1 = prop1; 
    this.prop2 = prop2; 
    this.prop3 = prop3; 
}; 

function assignProp1() { 
    return 'value1'; //Function simplified for the question 
} 

function generateThing() { 
    return new thing(function() {return assignProp1();}, 'value2', 'value3'); 
} 

我想要做的就是創建從protoype「東西」不同的對象。但是代碼並不接受'value1'作爲prop1,而是返回「generateThing/<()」作爲prop1。我不明白爲什麼它不起作用。

+3

替換'函數(){換貨政... 'assignProp1();}'with'assignProp1()' – basilikum

+0

你的代碼應該可以正常工作,你對它的期望是什麼? – skazska

回答

0
var thing = function (prop1, prop2, prop3) { 
    this.prop1 = prop1; 
    this.prop2 = prop2; 
    this.prop3 = prop3; 
}; 

function assignProp1() { 
    return 'value1'; //Function simplified for the question 
} 

function generateThing() { 
    return new thing(assignProp1(), 'value2', 'value3'); 
} 
+0

我確信我已經嘗試過,但是,現在它可以工作。 – MeisterAbababa

0

如果您嘗試生成prop1是函數的對象,則返回「value1」 您的代碼應該正常工作。如果你想爲prop1 =「值1」的對象 - 如果你添加

thing1 = generateThing(); 
console.log(thing1.prop1()); 

,你會看到一個「值1」在控制檯

這裏第一個答案是好立即

是一個片段:

var thing = function (prop1, prop2, prop3) { 
 
    this.prop1 = prop1; 
 
    this.prop2 = prop2; 
 
    this.prop3 = prop3; 
 
}; 
 

 
function assignProp1() { 
 
    return 'value1'; //Function simplified for the question 
 
} 
 

 
function generateThing() { 
 
    return new thing(function() {return assignProp1();}, 'value2', 'value3'); 
 
} 
 

 
thing1 = generateThing() 
 

 
$("#out").text(thing1.prop1())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
 
<span id="out"> </out>

相關問題