无法解决为什么其中任何一个对我不起作用:
var Deck = function() {
this.cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
};
var newDeck = new Deck
// console.log(newDeck()); // [1,2,3,4,etc]
console.log(newDeck.cards()); // [1,2,3,4,etc]
returns newDeck.cards is not a function
和
var Deck = function() {
this.cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var cards = function(){
console.log('hey')
}
};
var newDeck = new Deck
// console.log(newDeck()); // [1,2,3,4,etc]
console.log(newDeck.cards()); // [1,2,3,4,etc]
returns the same error as above
我只想从实例
返回对象中的函数答案 0 :(得分:1)
没有任何功能或方法cards
。 cards
是一个带数组的属性。正确的电话会是
console.log(newDeck.cards);
var Deck = function() {
this.cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
};
var newDeck = new Deck;
console.log(newDeck.cards);

第二个例子包含一个私有函数cards
。由于私有字符,该函数不能在外部调用。
答案 1 :(得分:1)
在您的示例中,this.cards
将是属性,而不是函数。如果您想要一个适用于所有Deck
实例的函数:
var Deck = function() {
// `_cards` so we do not conflict with the `cards` function
this._cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
};
Deck.prototype.cards = function() {
return this._cards;
};
var deck = new Deck();
console.log(deck.cards());