Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接对象的值';s属性返回NaN(Javascript)_Javascript - Fatal编程技术网

连接对象的值';s属性返回NaN(Javascript)

连接对象的值';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

我有一个具有多个属性的对象,每个属性都有一个字符串值。当我尝试连接每个属性的值时,它返回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: 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;

对象仅存在于具有对象文字的语句之后,并且在对象文字
中,此
指向
窗口
对象(或任何上下文),而不是要创建的对象。

啊,我不知道您不能引用对象文字中以前的属性。知道这件事真是太好了。非常感谢。