хочу исползовать тоже самое пропэрти name на fullname чтоб получить John Johnson но дает undefined Johnson
let data={
name : "John",
fullname : this.name+" Johnson"
};
console.log(data.fullname);
//undefined Johnson
JavaScript
Помогите с вопросом про JavaScript Object
class Person {
constructor(name, surname) {
this.name = name;
this.surname = surname;
}
get fullname() {
return this.name + ' ' + this.surname;
}
}
let johnson = new Person("John", "Johnson");
console.log(johnson.fullname);
constructor(name, surname) {
this.name = name;
this.surname = surname;
}
get fullname() {
return this.name + ' ' + this.surname;
}
}
let johnson = new Person("John", "Johnson");
console.log(johnson.fullname);
var data={
name : "John",
secondName : " Johnson",
fullname : function() {
console.log(this.name + this.secondName ) }
};
data.fullname();
_____
Или если хотели по написанному вами приниципу
var data={
name : "John",
fullname : function() {
console.log(this.name + "Johnson" ) }
};
data.fullname();
_______________________
А ответчик выше - большой любитель пудрить мозги начинающим своими заумностями))
name : "John",
secondName : " Johnson",
fullname : function() {
console.log(this.name + this.secondName ) }
};
data.fullname();
_____
Или если хотели по написанному вами приниципу
var data={
name : "John",
fullname : function() {
console.log(this.name + "Johnson" ) }
};
data.fullname();
_______________________
А ответчик выше - большой любитель пудрить мозги начинающим своими заумностями))
Вот так
data={
name : "John",
get fullname(){return this.name+" Johnson"}
};
console.warn(data.fullname);//"John Johnson"
⚤
data={
name : "John",
get fullname(){return this.name+" Johnson"}
};
console.warn(data.fullname);//"John Johnson"
⚤
Надо создать свойство. Читай тут https://learn.javascript.ru/descriptors-getters-setters
"Указание get/set в литералах"
"Указание get/set в литералах"
(() => {
function addMethod( object, name, fn ) {
var old = object[ name ];
object[ name ] = function() {
if( fn.length == arguments.length ) {
return fn.apply( this, arguments );
}
else if( typeof old == 'function' ) {
return old.apply( this, arguments );
}
}
}
var name = {};
addMethod( name, 'whatever', function() {});
addMethod( name, 'whatever', function( a ) {});
addMethod( name, 'whatever', function( a, b ) {});
var names = {
values: [ 'John Johnson', 'Ivan Drago' ]
}
addMethod( names, 'find', function() {
return this.values;
});
addMethod( names, 'find', function( name ) {
var ret = [];
for( var i = 0; i < this.values.length; i++ ) {
if( this.values[ i ].indexOf( name ) == 0 ) {
ret.push( this.values[ i ] );
}
}
return ret;
});
addMethod( names, 'find', function( first, last ) {
var ret = [];
for( var i = 0; i < this.values.length; i++ ) {
if( this.values[ i ] == ( first + ' ' + last ) ) {
ret.push( this.values[ i ] );
}
}
return ret;
});
alert( names.find()); // Все найденные имена
alert( names.find( 'John' )); // По имени
alert( names.find( 'John', 'Johnson' )); // По полному имени
})();
Код тут: https://jsfiddle.net/3dksnqjw/19/
function addMethod( object, name, fn ) {
var old = object[ name ];
object[ name ] = function() {
if( fn.length == arguments.length ) {
return fn.apply( this, arguments );
}
else if( typeof old == 'function' ) {
return old.apply( this, arguments );
}
}
}
var name = {};
addMethod( name, 'whatever', function() {});
addMethod( name, 'whatever', function( a ) {});
addMethod( name, 'whatever', function( a, b ) {});
var names = {
values: [ 'John Johnson', 'Ivan Drago' ]
}
addMethod( names, 'find', function() {
return this.values;
});
addMethod( names, 'find', function( name ) {
var ret = [];
for( var i = 0; i < this.values.length; i++ ) {
if( this.values[ i ].indexOf( name ) == 0 ) {
ret.push( this.values[ i ] );
}
}
return ret;
});
addMethod( names, 'find', function( first, last ) {
var ret = [];
for( var i = 0; i < this.values.length; i++ ) {
if( this.values[ i ] == ( first + ' ' + last ) ) {
ret.push( this.values[ i ] );
}
}
return ret;
});
alert( names.find()); // Все найденные имена
alert( names.find( 'John' )); // По имени
alert( names.find( 'John', 'Johnson' )); // По полному имени
})();
Код тут: https://jsfiddle.net/3dksnqjw/19/
Похожие вопросы
- Помогите решить задачи в Javascript:
- помогите решить задачу по javascript
- помогите составить загадку в javaScript пожалуйста.
- Пожалуйста, помогите с простым кодом JavaScript
- Помогите разобраться с кодом (JavaScript)
- Помогите решить задачу в JavaScript, тема: матрицы.
- Помогите составить таймер на javascript чтобы отображалось время пребывания пользователя на странице.
- Вопрос по JavaScript (фывпфыпыфвпфы)
- Вопрос по JavaScript, обращение к функции, которая находится в функции...
- Вопрос по JavaScript, смотрите описание
______
var data = {
name : "John",
secondName : "Johnson",
fullname : function() {
return this.name + this.secondName;
}
};
console.log(data.fullname());