使用构造函数在对象内部创建对象
Creating Objects inside objects using a Constructor
在下面的代码中,我试图创建一个名为 "portfolio" 的对象,其中
我想创建其他包含属性 "stockvalue" 和 "price"?
的对象
var portfolio_create = function(stock,stockvalue,price)
{
for(i in stock)
{
this[stock[i]] = stock[i];
this[stock[i]]["stockvalue"] =stockvalue[i];
this[stock[i]]["price"]=price[i]
}
}
var portfolio = new portfolio_create(["ibm","tcs"],[23,34],[34,45]);
var stock_market = portfolio;
alert(portfolio["ibm"]["stockvalue"]); // undefined
为什么警报 return "undefined" 而不是 23?
提前致谢。
var portfolio_create = function (stock, stockvalue, price) {
for (var i = 0, len = stock.length; i < len; i++) {
this[stock[i]] = {};
this[stock[i]]["stockvalue"] = stockvalue[i];
this[stock[i]]["price"] = price[i];
}
}
var portfolio = new portfolio_create(["ibm", "tcs"], [23,34], [34,45]);
- 不要对数组使用
for..in
。
this[stock[i]] = stock[i];
替换为 this[stock[i]] = {};.
我认为对象和变量之间有点混淆。
您可以创建一个真实的 JavaScript class 投资组合,其中包含另一只 class 股票的集合,其中包含 2 个变量值和价格。
在您的投资组合 class 中,您可以添加一个 AddStock 方法和一个 GetStock。
看看JavaScript类,我想你会找到你的幸福。
史蒂夫
并尝试使用下划线或 lodash 等库来摆脱这些 for 循环(每个)。它更好,更实用。
短一点:
this[stock[i]] = { stockvalue: stockvalue[i], price: price[i] };
在下面的代码中,我试图创建一个名为 "portfolio" 的对象,其中 我想创建其他包含属性 "stockvalue" 和 "price"?
的对象var portfolio_create = function(stock,stockvalue,price)
{
for(i in stock)
{
this[stock[i]] = stock[i];
this[stock[i]]["stockvalue"] =stockvalue[i];
this[stock[i]]["price"]=price[i]
}
}
var portfolio = new portfolio_create(["ibm","tcs"],[23,34],[34,45]);
var stock_market = portfolio;
alert(portfolio["ibm"]["stockvalue"]); // undefined
为什么警报 return "undefined" 而不是 23?
提前致谢。
var portfolio_create = function (stock, stockvalue, price) {
for (var i = 0, len = stock.length; i < len; i++) {
this[stock[i]] = {};
this[stock[i]]["stockvalue"] = stockvalue[i];
this[stock[i]]["price"] = price[i];
}
}
var portfolio = new portfolio_create(["ibm", "tcs"], [23,34], [34,45]);
- 不要对数组使用
for..in
。 this[stock[i]] = stock[i];
替换为this[stock[i]] = {};.
我认为对象和变量之间有点混淆。
您可以创建一个真实的 JavaScript class 投资组合,其中包含另一只 class 股票的集合,其中包含 2 个变量值和价格。
在您的投资组合 class 中,您可以添加一个 AddStock 方法和一个 GetStock。
看看JavaScript类,我想你会找到你的幸福。
史蒂夫
并尝试使用下划线或 lodash 等库来摆脱这些 for 循环(每个)。它更好,更实用。
短一点:
this[stock[i]] = { stockvalue: stockvalue[i], price: price[i] };