Sử dụng function trong object

Mình mới học javascript nên tập tành làm thử và vấn đề mình gặp là việc sử dụng function trong object và kết quả nó không in ra output như mong đợi mong mọi người giúp đỡ:

<!DOCTYPE html>
<html>
<body>

<p>Creating a JavaScript Object.</p>

<p id="demo"></p>

<script>
var person = {
    firstName : "John",
    lastName  : "Doe",
    age       : 50,
    eyeColor  : "blue",
    myfunction : function()
    {
    	this.firstName = firstName;
        this.lastName = lastName;
        return lastName +firstName;
    }
};

document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old."+ person.myfunction();
</script>

</body>
</html>
var person = {
    firstName : "John",
    lastName  : "Doe",
    age       : 50,
    eyeColor  : "blue",
    myfunction : function()
    {
        this.firstName = firstName;
        this.lastName = lastName;
        return lastName +firstName;
    }
};

document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old."+ person.myfunction();

Bạn up code lên jsbin, jsfiddle, codepen để mọi người thấy code và check luôn cho bạn.
Hơn nữa, nên nêu ra kết quả input như mong đợi và kết quả input hiện tại cho dễ hình dung cái “như mong đợi” là cái gì.

1 Like

Vì mình úp nhầm nền mình cóp update phần code của mình rồi đó cậu

Trong hàm myfunction bạn chưa khai báo firstNamelastName

1 Like

Object Literal từng fields độc lập với nhau, không có dạng 1 property có type là function lại gọi property thuộc type khác.
Bạn nên tạo 1 class cho Person, có các fields firstName, age, … và 1 computed property field fullName, cú pháp computed property dạng get fullName() { \* your logic *\ }

Note: Cú pháp trên thuộc ES6, Chrome đã hỗ trợ ES6 nên test thẳng trên Chrome, không qua Babel.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?