2016-08-31 4 views
-3

javascript/jQuery FileОбъекты и прототипы

Это код, с которым я работаю. Это работает, когда NewOrder просто устанавливается:

var newOrder = (toppingsTotal + inputtedSize); 

, но всякий раз, когда я пытаюсь вызвать прототип он говорит, что его не определено в консоли JS.

Я до сих пор довольно новичок в этом материале. Помните об этом.

Что я пытаюсь это добавить начинки и размер, а также использовать компиляцию prototype/object на моем выходе.

Любая помощь приветствуется!

a Стремящийся кодер.

+4

Скриншоты кода бесполезны – Phil

+0

1) Конструктор 'Pizza' ожидает три аргумента, но вы только передаете один. 2) Имя метода - 'pizzaPrice', а не' price'. 3) Ваш экземпляр 'Pizza' -' newOrder', поэтому вы бы назвали 'newOrder.pizzaPrice()' – Phil

+1

Этот вопрос выглядит очень много, как этот: http://stackoverflow.com/questions/39240070/issue-with-prototype -в-JS # comment65817037_39240070. Возможно, это домашняя работа или два человека работают над одной и той же проблемой? – jfriend00

ответ

-1

Замещение newOrder.price() за Pizza.pizzaPrice() для ссылки на объект newOrder по телефону Pizz.prototype.pizzaPrice().

Хотя, обратите внимание, что вы не прошли size или price с параметрами до var newOrder = new Pizza(toppingsTotal + inputtedSize); и вы вызываете .price() где имя функции pizzaPrice

На stacksnippets ниже три параметра передается в new Pizza() и newOrder.pizzaPrice() используется для вызова Pizza.prototype.pizzaPrice

function Pizza(topping, size, price) { 
 
    this.topping = topping; 
 
    this.size = size; 
 
    this.price = price; 
 
} 
 

 
Pizza.prototype.pizzaPrice = function() { 
 
    return this.topping + this.size 
 
} 
 

 
var newOrder = new Pizza("cheese", 12, 10.00); 
 

 
console.log(newOrder.pizzaPrice());

+0

Я пробовал это раньше, и он говорит, что это не функция в консоли JS. –

+1

"downvote" описание? – guest271314

0

Я думаю, что ваша PIZZA функции ожидает три (topping,size,price) параметры, но ваш передающий единственный параметр, так что оставшиеся 2 параметра (size, price) являются undefind.

function Pizza(topping, size, price) { 
    this.topping=topping; 
    this.size=size; 
    this.price=price; 
} 

Пропустить три аргумента для этого конструктора.

0

Pizza Ваш конструктор имеет три параметра:

function Pizza(topping, size, price) { 
    // ... 
} 

... но вы только проходя один аргумент:

new Pizza(toppingsTotal + inputtedSize); 

Поэтому пиццы this.topping собирается быть сумма toppingsTotal и inputtedSize, а остальное будет undefined.

Убедитесь, что ваши аргументы совпадают с вашими параметрами, или ваш Pizza не будет вести себя так, как ожидалось.

Смежные вопросы