访问对象内部键的值
Accessing value of key inside object
我知道有一些问题与此非常相似,但我似乎无法解决任何问题。
为了简洁起见,我将对此进行总结。我有这个构造函数,其中字符串被分配为键的值(赋值)。
var Quote = function() {
this.quote1 = 'You can discover more about a person in an hour of play than in a year of conversation.';
this.quote2 = 'Nothing is at last sacred but the integrity of your own mind.';
this.quote3 = 'We have to fight them daily, like fleas, those many small worries about the morrow, for they sap our energies.';
this.quote4 = 'Ethics are so annoying. I avoid them on principle.';
this.quote5 = "Never trust anything that can think for itself if you can't see where it keeps its brain.";
};
module.exports = Quote;
使用 AJAX 我将构造函数中的键值打印到静态页面。但是......我只成功打印了"quote1","quote2",等等......(只是键的名称)。
这就是我访问构造函数的函数的样子。我的问题是:如何访问分配给构造函数中的键的字符串值?这可能吗?
提前致谢。
module.exports = function(object) {
var propArray = Object.keys(object);
var randomProp = propArray[Math.floor(Math.random() * propArray.length)];
return {quote: randomProp};
};
在您的函数中,您应该能够使用以下按键访问引用:
object[randomProp]
在JavaScript中,可以使用方括号表示法访问对象属性。参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects。
如您所料,您的代码有几处错误:)
我已经用非常详尽的评论重写了它。
<script>
// create your 'Quote' class, which can be instantiated as many times as necessary
var Quote = function() {
this.quote1 = 'You can discover more about a person in an hour of play than in a year of conversation.';
this.quote2 = 'Nothing is at last sacred but the integrity of your own mind.';
this.quote3 = 'We have to fight them daily, like fleas, those many small worries about the morrow, for they sap our energies.';
this.quote4 = 'Ethics are so annoying. I avoid them on principle.';
this.quote5 = "Never trust anything that can think for itself if you can't see where it keeps its brain.";
};
// now let's set up the 'exports' method on the function's prototype
// this will allow any new instance of the Quote function to call or override this method
// without affecting the master 'Quote' class
Quote.prototype.exports = function() {
// you don't need to explicitly pass an object to this function
// just have it reference itself using the 'this' keyword
var propArray = Object.keys(this);
var randomProp = propArray[Math.floor(Math.random() * propArray.length)];
// objects in JavaScript can be handled like associative arrays
// simply access the key of 'this' with the value provided by 'randomProp'
return {quote: this[randomProp]};
};
// create a new instance of 'Quote'
// this guy can be used and manipulated independent of the master 'Quote' class
var module = new Quote();
// let's store the value returned by 'exports' in randomQuote
// note the () at the end of module.exports -- this tells JavaScript to treat the object as a function
var randomQuote = module.exports();
// write your quote to the document -- or do whatever else you want to with it at this point
document.write(randomQuote.quote);
</script>
而不是 return { quote: randomProp }
你应该使用 return object[randomProp]
.
您可以通过点表示法或方括号表示法访问对象属性。
这是一个来自 jsbin 的例子
https://jsbin.com/yopeli/edit?js,console
我知道有一些问题与此非常相似,但我似乎无法解决任何问题。
为了简洁起见,我将对此进行总结。我有这个构造函数,其中字符串被分配为键的值(赋值)。
var Quote = function() {
this.quote1 = 'You can discover more about a person in an hour of play than in a year of conversation.';
this.quote2 = 'Nothing is at last sacred but the integrity of your own mind.';
this.quote3 = 'We have to fight them daily, like fleas, those many small worries about the morrow, for they sap our energies.';
this.quote4 = 'Ethics are so annoying. I avoid them on principle.';
this.quote5 = "Never trust anything that can think for itself if you can't see where it keeps its brain.";
};
module.exports = Quote;
使用 AJAX 我将构造函数中的键值打印到静态页面。但是......我只成功打印了"quote1","quote2",等等......(只是键的名称)。
这就是我访问构造函数的函数的样子。我的问题是:如何访问分配给构造函数中的键的字符串值?这可能吗?
提前致谢。
module.exports = function(object) {
var propArray = Object.keys(object);
var randomProp = propArray[Math.floor(Math.random() * propArray.length)];
return {quote: randomProp};
};
在您的函数中,您应该能够使用以下按键访问引用:
object[randomProp]
在JavaScript中,可以使用方括号表示法访问对象属性。参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects。
如您所料,您的代码有几处错误:)
我已经用非常详尽的评论重写了它。
<script>
// create your 'Quote' class, which can be instantiated as many times as necessary
var Quote = function() {
this.quote1 = 'You can discover more about a person in an hour of play than in a year of conversation.';
this.quote2 = 'Nothing is at last sacred but the integrity of your own mind.';
this.quote3 = 'We have to fight them daily, like fleas, those many small worries about the morrow, for they sap our energies.';
this.quote4 = 'Ethics are so annoying. I avoid them on principle.';
this.quote5 = "Never trust anything that can think for itself if you can't see where it keeps its brain.";
};
// now let's set up the 'exports' method on the function's prototype
// this will allow any new instance of the Quote function to call or override this method
// without affecting the master 'Quote' class
Quote.prototype.exports = function() {
// you don't need to explicitly pass an object to this function
// just have it reference itself using the 'this' keyword
var propArray = Object.keys(this);
var randomProp = propArray[Math.floor(Math.random() * propArray.length)];
// objects in JavaScript can be handled like associative arrays
// simply access the key of 'this' with the value provided by 'randomProp'
return {quote: this[randomProp]};
};
// create a new instance of 'Quote'
// this guy can be used and manipulated independent of the master 'Quote' class
var module = new Quote();
// let's store the value returned by 'exports' in randomQuote
// note the () at the end of module.exports -- this tells JavaScript to treat the object as a function
var randomQuote = module.exports();
// write your quote to the document -- or do whatever else you want to with it at this point
document.write(randomQuote.quote);
</script>
而不是 return { quote: randomProp }
你应该使用 return object[randomProp]
.
您可以通过点表示法或方括号表示法访问对象属性。
这是一个来自 jsbin 的例子 https://jsbin.com/yopeli/edit?js,console