function Obj (name,sname) {
this.fname;
this.concat = function(){
this.fname = name + " " + sname;
}
this.fullname = function(){
console.log(this.fname);
}
}
var o = new Obj("Sancho","Panco");
o.fullname();
почему в итоге в консоли undefined ?
чем отлчиается в функции - конструкторе обьявления переменных this.fname; или же var fname;
и собственно то же самое с функциями, в чем отличие? this.concat = function() или же var concat = function() //кстати так выдает ошибку.
JavaScript
создание обьектов через new
this.fname; - не определена
Я точно не знаю, какой в JS синтаксис, но можно попробовать перед названием объекта поставить звёздочку (*).
var *o = new Obj();
o->fullname(); // и обращаться к методу объекта, через стрелочку, а не точку. Это же не статический объект.
var *o = new Obj();
o->fullname(); // и обращаться к методу объекта, через стрелочку, а не точку. Это же не статический объект.
Владимир Мачихо
к сожалению js очень отличается от сипп)
дело в том что когда пишешь это...
--------------------------------------------
function Person(name, age) {
this.name = name || 'Islam';
this.age = age || 25;
}
-------------------------------------------
...на самом деле происходит следующее...
--------------------------------------------------------
function Person(name, age) {
var this = {} // неявно создаётся объект this
this.name = name || 'Islam';
this.age = age || 25;
return this; // неявно возвращается объект this
}
вот и вся магия. надеюсь многое стало понятно
--------------------------------------------
function Person(name, age) {
this.name = name || 'Islam';
this.age = age || 25;
}
-------------------------------------------
...на самом деле происходит следующее...
--------------------------------------------------------
function Person(name, age) {
var this = {} // неявно создаётся объект this
this.name = name || 'Islam';
this.age = age || 25;
return this; // неявно возвращается объект this
}
вот и вся магия. надеюсь многое стало понятно
вообще все неправильно, вам бы еще про конструкторах и деструкторах почитать а то из кода понятно, что знания в этом вопросе хромают.
Кроме того, вы вызываете атрибут, еще не определив его.
логику я примерно понял, вот вам пример
function Obj (name,sname) {
this.name = name;
this.sname = sname;
this.fname = "";
this.concat = function(){
this.fname = this.name + " " + this.sname;
}
this.fullname = function(){
console.log(this.fname);
}
}
var o = new Obj("Sancho","Panco");
o.concat();
o.fullname();
Вариант 2:
function Obj (name,sname) {
this.fname = name + " " + sname;
this.fullname = function(){
console.log(this.fname);
}
}
var o = new Obj("Sancho","Panco");
o.fullname();
Кроме того, вы вызываете атрибут, еще не определив его.
логику я примерно понял, вот вам пример
function Obj (name,sname) {
this.name = name;
this.sname = sname;
this.fname = "";
this.concat = function(){
this.fname = this.name + " " + this.sname;
}
this.fullname = function(){
console.log(this.fname);
}
}
var o = new Obj("Sancho","Panco");
o.concat();
o.fullname();
Вариант 2:
function Obj (name,sname) {
this.fname = name + " " + sname;
this.fullname = function(){
console.log(this.fname);
}
}
var o = new Obj("Sancho","Panco");
o.fullname();
Похожие вопросы
- Создание проверки заполнения полей формы js
- Создание iframe из ютуба средствами js
- Создание слайдера js
- Где в игре Fallout New Vegas можно найти действущий бункер Братства Стали? Около какова обьекта?
- Если для одного обьекта не существует времени, а для другого существует и этот
- New York, New York — Mireille Mathieu Пожалуиста!!! Очень нужна транскрипция на русском!!! (Не перевод).
- Наверное тупой вопрос,но как так ровно вырезают в фш обьекты?Любители подшутить идите мимо вопроса.
- На обьективе 18-55 возможно ли сфотографировать ночью обьект в движении без смаза?
- Equals неполучается сравнить обьекты
- Strong is the new skinny (сила и мускулы) - новый идеал женского тела? Ваше мнение?