function Title(mainTitle){
this.mainTitle = mainTitle;
}
var projectTitle1 = new Title("Project-1 Main Title"),
projectTitle2 = new Title("Project-2 Main Title"),
projectTitle3 = new Title("Project-3 Main Title"),
projectTitle4 = new Title("Project-4 Main Title");我喜欢访问构造函数并提取与给定索引(1-4)相关的标题。我尝试了以下几点:
var index = 4,
x = "projectTitle" + index,
y = projectTitle.mainTitle;console.log(y)返回未定义的。
发布于 2018-06-24 03:34:04
在运行构造函数后,不能“访问构造函数”。但是,您可以做的是将每个实例化放在一个数组中,并访问适当的索引:
function Title(mainTitle){
this.mainTitle = mainTitle;
}
const titles = [
new Title("Project-1 Main Title"),
new Title("Project-2 Main Title"),
new Title("Project-3 Main Title"),
new Title("Project-4 Main Title"),
];
const getTitle = titleNum => titles[titleNum - 1].mainTitle;
console.log(getTitle(4));
console.log(getTitle(2));
当然,您必须按照顺序向titles添加项。如果不能依赖这一点,另一种可能是将每个title放入一个按其mainTitle中的数字索引的对象中。
发布于 2018-06-24 03:44:24
只需使用数组或对象。
var titles=[
//add elements here
new Title("Project-1 Main Title"),
new Title("Project-2 Main Title")
];
//add a new element after
titles.push(new Title("Project-3 Main Title"));然后通过索引访问每个元素,从0、titles[index]开始。
或者您可以使用对象为每个元素拥有一个键(属性名)。
var titles={
//define elements (properties) here
"projectTitle1":new Title("Project-1 Main Title")
"projectTitle2":new Title("Project-2 Main Title")
};
//assign a new element
titles.projectTitle3=new Title("Project-3 Main Title");然后,您可以以titles.projectTitle1的形式访问每个元素,也可以以titles[x]的形式从字符串访问每个元素。
但是你应该知道为什么你的代码不能工作。
var index = 4,
x = "projectTitle" + index您有以x为值的projectTitle4。
y = projectTitle.mainTitle;projectTitle没有定义,您甚至从未使用过x。
如果变量名为string,如果在全局范围(函数外)中运行,您可以以window[x]的形式访问变量window[x]。
现在,您可以轻松地使当前的代码工作。但是使用数组/对象的方式。
https://stackoverflow.com/questions/51006723
复制相似问题