Hỏi về Function - Object trong JavaScript

Em có đoạn code như sau :

var teacher = {
    firstName: "Thanh",
    lastName: "Nguyen",
    age: 26,
    say: function(){
    	this.firstName = name1;
    	this.lastName = name2;
    	this.age = myage;
    	aboutMe(firstName,lastName,age);
        // document.getElementById("pChanged").innerHTML = "Ten toi la : " + this.firstName + " . Tuoi cua toi la : " + this.age;
    },
};

var aboutMe = function(name1,name2,myage){
	return "Xin Chao . Ten toi la : " + name1 + " " + name2 + " . Nam nay toi " + myage;
}

Em đã thử rất nhiều cách nhưng không hiểu sao tham số vẫn không nhận để liệt kê ra kết quả mà em muốn . Vật vã suốt buổi chiều vẫn không hiểu tại sao nữa thực sự rất là rối . Mong các bác chỉ cho em với em xin cảm ơn !

Thứ 1 :

this.firstName = name1

tức là gán name1 cho this.firstName chứ không phải ngược lại

Thứ 2: bạn không nắm được Javascript context ==> đọc http://kipalog.com/posts/Javascript-context

Thứ 3: Bạn chưa thực thi cái function say () ở trên thì nó sẽ chẳng hiện ra gì

2 Likes

Bạn đang không hiểu javascript basic, code sai tùm lum :smile:

Code bạn tham khảo:

var teacher = {
    firstName: "Thanh",
    lastName: "Nguyen",
    age: 26,
    say: function(){
		console.log("Xin Chao . Ten toi la : " + this.firstName + " " + this.lastName + " . Nam nay toi " + this.age);
    },
};

teacher.say();

Bạn không hiểu ý mình rồi mình muốn viết hàm aboutMe() để có thể sử dụng lại trong phương thức của object khác .
teacher.say = aboutMe();
parent.say = aboutMe();

Mình đang không hiểu lắm nên code sai tùm lum mà :relaxed:

Mình đang đọc lại có gì không hiểu bạn giúp đỡ mình nha :grin:

của bạn đây:

function aboutMe(firstName, lastName, age){
	console.log("Xin Chao . Ten toi la : " + firstName + " " + lastName + " . Nam nay toi " + age);
};

var teacher = {
    firstName: "Thanh",
    lastName: "Nguyen",
    age: 26,
    say: function(){
		aboutMe(this.firstName, this.lastName, this.age);
    },
};


teacher.say();
2 Likes
var aboutMe = function() {
 console.log(this.firstName)
 console.log(this.lastName)
}
var teacher = {
    firstName: "Thanh",
    lastName: "Nguyen",
    age: 26,
    say: aboutMe,
};

teacher.say();
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?