Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

Tôi hiểu cách khởi tạo các đối tượng và gọi chúng, nhưng tôi không thể tìm thấy lý do để sử dụng chúng trong kịch bản của mình. tôi có thể làm

var obj = {
    hi: function() {
        return "Hello";
    }
}; 

Nhưng tại sao tôi không thể làm điều đó giống như:

function hi() {
    return "Hello";
}

Tôi chưa bao giờ hiểu lý do tại sao tôi cũng nên sử dụng tạo mẫu. Hầu hết những điều tôi làm trong JavaScript tôi có thể làm tốt mà không cần đối tượng. Nhưng tôi muốn sử dụng các đối tượng. Đối tượng cho là gì và lý do tại sao tôi nên sử dụng chúng là gì?

Hỏi ngày 3 tháng 8 năm 2011 lúc 17:29Aug 3, 2011 at 17:29

Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

3

Các đối tượng rất hữu ích, ví dụ để tạo một đơn vị ra khỏi các giá trị thuộc về nhau. Thí dụ:

function Person(firstName, lastName, gender, age) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.gender = gender;
  this.age = age;
}

Person.prototype = {
  getFullName: function() { return this.firstName + ' ' + this.lastName; },
  isMale: function() { return this.gender == 'Male'; },
  isFemale: function() { return this.gender == 'Female'; }
};

var amanda = new Person('Amanda', 'Smith', "Female", 42);
var john = new Person('John', 'Doe', 'Male', 72);

alert(amanda.getFullName());
alert(john.isMale());

So với ít cấu trúc hơn:

function getFullName(firstName, lastName) {
  return firstName + ' ' + lastName;
}

function isMale(gender) {
  return gender == 'Male';
}

function isFemale(gender) {
  return gender == 'Female';
}

var amandaFirstName = 'Amanda';
var amandaLastName = 'Smith';
var amandaGender = 'Female';
var amandaAge = 42;
var johnFirstName = 'John';
var johnLastName = 'Doe';
var johnGender = 'Male';
var johnAge = 72;

alert(getFullName(amandaFirstName, amandaLastName));
alert(isMale(johnGender));

Đã trả lời ngày 3 tháng 8 năm 2011 lúc 17:45Aug 3, 2011 at 17:45

GuffaguffaGuffa

675K108 Huy hiệu vàng723 Huy hiệu bạc998 Huy hiệu Đồng108 gold badges723 silver badges998 bronze badges

3

Đối tượng rất hữu ích vì

  1. Họ là trạng thái.
  2. Họ có thể lưu trữ quan hệ giữa các chuỗi và dữ liệu.
  3. Có thể dễ dàng hơn để phân tách một vấn đề bằng cách chia nó thành các đối tượng thu thập các hoạt động và trạng thái liên quan.

Nếu bạn không cần trạng thái không toàn cầu, không cần bảng tra cứu và vấn đề của bạn nhỏ hoặc dễ bị phân tách về mặt chức năng thì không sử dụng các đối tượng.

Đã trả lời ngày 3 tháng 8 năm 2011 lúc 17:34Aug 3, 2011 at 17:34

Mike Samuelmike SamuelMike Samuel

Huy hiệu vàng 116K3030 gold badges212 silver badges240 bronze badges

Không có những gì bạn đang đề cập đến như các đối tượng, bạn sẽ có các chức năng lỏng lẻo ở khắp mọi nơi. Điều này rất thường xuyên sẽ dẫn đến mã rất khó duy trì. Ở mức tối thiểu, các đối tượng cung cấp cho bạn khả năng gộp các hàm với nhau để mô phỏng các không gian tên-- và đó là ở mức tối thiểu.

Đã trả lời ngày 3 tháng 8 năm 2011 lúc 17:34Aug 3, 2011 at 17:34

ek_nyek_nyek_ny

Mike Samuelmike Samuel6 gold badges45 silver badges60 bronze badges

Huy hiệu vàng 116K30

Không có những gì bạn đang đề cập đến như các đối tượng, bạn sẽ có các chức năng lỏng lẻo ở khắp mọi nơi. Điều này rất thường xuyên sẽ dẫn đến mã rất khó duy trì. Ở mức tối thiểu, các đối tượng cung cấp cho bạn khả năng gộp các hàm với nhau để mô phỏng các không gian tên-- và đó là ở mức tối thiểu.

Đã trả lời ngày 3 tháng 8 năm 2011 lúc 17:34Aug 3, 2011 at 17:34

Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

Mike Samuelmike SamueljAndy

Huy hiệu vàng 116K3056 gold badges302 silver badges356 bronze badges

Không có những gì bạn đang đề cập đến như các đối tượng, bạn sẽ có các chức năng lỏng lẻo ở khắp mọi nơi. Điều này rất thường xuyên sẽ dẫn đến mã rất khó duy trì. Ở mức tối thiểu, các đối tượng cung cấp cho bạn khả năng gộp các hàm với nhau để mô phỏng các không gian tên-- và đó là ở mức tối thiểu.

Đã trả lời ngày 3 tháng 8 năm 2011 lúc 17:34Aug 3, 2011 at 17:34

Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

Mike Samuelmike Samueldchhetri

Huy hiệu vàng 116K304 gold badges41 silver badges55 bronze badges

Không có những gì bạn đang đề cập đến như các đối tượng, bạn sẽ có các chức năng lỏng lẻo ở khắp mọi nơi. Điều này rất thường xuyên sẽ dẫn đến mã rất khó duy trì. Ở mức tối thiểu, các đối tượng cung cấp cho bạn khả năng gộp các hàm với nhau để mô phỏng các không gian tên-- và đó là ở mức tối thiểu.

10.1k6 Huy hiệu vàng45 Huy hiệu bạc60 Huy hiệu Đồng

dojo.create( ... )
dojo.connect( ... )

Trong ví dụ đơn giản của bạn, thực sự không có ý nghĩa gì khi viết một "lớp" / đối tượng bán để giữ phương pháp đó. Nhưng khi mã của bạn phát triển, bạn ngày càng nhận được nhiều chức năng và phương pháp hơn, bạn không thực sự muốn có tất cả chúng trong một không gian tên lớn (toàn cầu). Điều đó chỉ là không thể duy trì, không ai sẽ hiểu mã đó bao gồm bạn ở một số điểm sau.

  1. Đó là lý do chính đáng đầu tiên để bọc các phương thức với nhau trong một đối tượng/"lớp". Một lý do chính đáng khác là tái sử dụng. Nếu bạn đang viết các đối tượng có khả năng kế thừa các phương thức của chúng, bạn có thể tạo lại một đối tượng khác và trừu tượng nó từ đó trở đi. Khái niệm đơn giản nhất, nhưng bạn muốn sử dụng nó nếu bạn mô tả "những thứ" trong ứng dụng của mình dưới dạng mô -đun/đối tượng.

    Jandyjandy

    function doStuff(animal){
        if animal is a tiger:
            print_tiger_roar();
       else if animal is a cow
            print_cow_moo();
    
       if animal is a tiger:
            print_tiger_wants_meat();
       else if animal is a cow
            print cow_wants_grass();
    

    226K56 Huy hiệu vàng302 Huy hiệu bạc356 Huy hiệu Đồng

    function doStuff(animal):
       animal.print_speak();
       animal.print_food_type();
    

    Nó cố gắng mô phỏng mô hình OOP đó là tất cả. Có nhiều cách khác nhau để làm điều này. Nhưng hãy tự hỏi mình, doe 'hi' thuộc về 'obj' hay nó có thể là một chức năng độc lập? Đó là tất cả về cách liên quan chặt chẽ là chức năng với đối tượng. Có phải chức năng cần truy cập các đối tượng các biến riêng tư và như vậy?

  2. dchhetridchhetri

    6.7204 Huy hiệu vàng41 Huy hiệu bạc55 Huy hiệu Đồng

Đây là một "đối tượng trong JavaScript" và nhiều hơn một đối tượng nói chung "câu hỏi.Aug 3, 2011 at 17:51

Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

Tôi muốn nói JavaScript có liên quan nhất Điều duy nhất JavaScript cụ thể về các đối tượng là sử dụng gọn gàng của chúng khi đặt tên. Ví dụ, hầu hết các thư viện JavaScript đóng gói tất cả các nội dung của họ trong một đối tượng để tránh va chạm không gian tên:hugomg

Đối với các câu hỏi khác về lý do tại sao OOP, có 2 điều cơ bản tôi nghĩ OOP vượt trội (chung, câm, ví dụ sau):23 gold badges155 silver badges242 bronze badges

Định cư động - Loại bỏ "ifs" và đặt trách nhiệm

Khi bạn nhìn vào một mã có hàng tấn "công tắc":

Có thể là một ý tưởng tốt để gói từng loại hành vi khác nhau trong một loại đối tượng khác nhau và sử dụng điều phối động thay thế:Oct 18, 2018 at 21:43

Hướng dẫn why do we need objects in javascript? - tại sao chúng ta cần các đối tượng trong javascript?

Bây giờ, nếu bạn đưa ra một loại động vật khác trong tương lai, bạn không cần phải tìm kiếm mã của mình để thêm nó - tất cả những gì bạn cần làm là tạo một lớp mới với các phương thức print_speack và print_food_type thích hợp và phần còn lại của mã sẽ không nhận thấy một điều.Artur INTECH

5.3592 Huy hiệu vàng34 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges34 silver badges31 bronze badges

Tại sao các đối tượng tốt hơn mảng javascript?

Cả hai đối tượng và mảng được coi là đặc biệt của người Viking trong JavaScript.Các đối tượng đại diện cho một loại dữ liệu đặc biệt có thể thay đổi và có thể được sử dụng để lưu trữ một bộ sưu tập dữ liệu (thay vì chỉ một giá trị duy nhất).Mảng là một loại biến đặc biệt cũng có thể thay đổi và cũng có thể được sử dụng để lưu trữ danh sách các giá trị.Objects represent a special data type that is mutable and can be used to store a collection of data (rather than just a single value). Arrays are a special type of variable that is also mutable and can also be used to store a list of values.

Tại sao chúng ta sử dụng tạo đối tượng?

Phương thức Object.Create () tạo một đối tượng mới, sử dụng một đối tượng hiện có làm nguyên mẫu của đối tượng mới được tạo.creates a new object, using an existing object as the prototype of the newly created object.