连接对象的值';s属性返回NaN(Javascript)
我有一个具有多个属性的对象,每个属性都有一个字符串值。当我尝试连接每个属性的值时,它返回NaN连接对象的值';s属性返回NaN(Javascript),javascript,Javascript,我有一个具有多个属性的对象,每个属性都有一个字符串值。当我尝试连接每个属性的值时,它返回NaN var urlProps = { searchTerm: "searchSTUFF", baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintex
var urlProps = {
searchTerm: "searchSTUFF",
baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintext=&titles=%20&generator=search&gsrsearch=",
tailURL: "&rawcontinue=&callback=?",
finalURL: this.baseURL + this.searchTerm + this.tailURL
}
console.log(urlProps.finalURL);
//NaN
我在这里做错了什么,或者正确的方法是什么?我建议使用函数
var urlProps = {
searchTerm: "searchSTUFF",
baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintext=&titles=%20&generator=search&gsrsearch=",
tailURL: "&rawcontinue=&callback=?",
finalURL: function() { return this.baseURL + this.searchTerm + this.tailURL; }
}
console.log(urlProps.finalURL());
//https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&e…=&titles=%20&generator=search&gsrsearch=searchSTUFF&rawcontinue=&callback=?
当试图构建
finalUrl
时,JS引擎无法找到this.baseUrl
或this.searchTerm
或this.tailUrl
,因为在引擎完成构建之前(在
处),您正在构建的对象不存在作为参考的目的
要使其正常工作,在尝试引用对象之前,需要确保对象已完成构建:
var urlProps = {
searchTerm: "searchSTUFF",
baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintext=&titles=%20&generator=search&gsrsearch=",
tailURL: "&rawcontinue=&callback=?"
}
// here it can find it...
urlProps.finalURL = urlProps.baseURL + urlProps.searchTerm + urlProps.tailURL;
在您试图连接值的位置,对象尚未创建。
此外,
此
在任何情况下都不会表示对象。您可以在构造函数或对象方法中使用它。为了得到你想要的结果,你必须这样做
var urlProps = {
searchTerm: "searchSTUFF",
baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintext=&titles=%20&generator=search&gsrsearch=",
tailURL: "&rawcontinue=&callback=?",
finalURL: this.baseURL + this.searchTerm + this.tailURL
}
urlProps.finalURL = urlProps.baseURL + urlProps.searchTerm + urlProps.tailURL;
this.baseURL
、this.searchTerm
和this.tailURL
在对象文本中的该点都是未定义的。您必须在单独的语句中生成最终URL:
var urlProps = {
searchTerm: "searchSTUFF",
baseURL: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=1&exlimit=10&exintro=&explaintext=&titles=%20&generator=search&gsrsearch=",
tailURL: "&rawcontinue=&callback=?"
};
urlProps.finalURL = urlProps.baseURL + urlProps.searchTerm + urlProps.tailURL;
对象仅存在于具有对象文字的语句之后,并且在对象文字中,此
指向窗口
对象(或任何上下文),而不是要创建的对象。啊,我不知道您不能引用对象文字中以前的属性。知道这件事真是太好了。非常感谢。