HomeLập trìnhJavaScriptGiải thích các...

Giải thích các phương thức gán, giá trị, hasOwnProperty và getOwnPropertyNames


Trong JavaScript, Object kiểu dữ liệu được sử dụng để lưu trữ các cặp giá trị khóa và giống như Array kiểu dữ liệu, chứa nhiều phương thức hữu ích. Đây là một số phương pháp hữu ích mà bạn sẽ sử dụng khi làm việc với các đối tượng.

Phương thức gán đối tượng

Các Object.assign() phương pháp được sử dụng để

  1. thêm các thuộc tính và giá trị cho một đối tượng hiện có
  2. tạo một bản sao mới của một đối tượng hiện có, hoặc
  3. kết hợp nhiều đối tượng hiện có thành một đối tượng duy nhất.

Các Object.assign() phương pháp yêu cầu một targetObject như một tham số và có thể chấp nhận số lượng không giới hạn sourceObjects như các tham số bổ sung.

Điều quan trọng cần lưu ý ở đây là targetObject tham số sẽ luôn được sửa đổi. Nếu tham số đó trỏ đến một đối tượng hiện có, thì đối tượng đó sẽ được sửa đổi và sao chép.

Nếu bạn muốn tạo một bản sao của một đối tượng mà không sửa đổi đối tượng ban đầu đó, bạn có thể chuyển một đối tượng trống {} như là người đầu tiên (targetObject) và đối tượng được sao chép dưới dạng thứ hai (sourceObject) tham số.

Đọc thêm  Vùng chết tạm thời (TDZ) và cẩu trong JavaScript – được giải thích bằng các ví dụ

Nếu các đối tượng được truyền dưới dạng tham số vào Object.assign() chia sẻ các thuộc tính (hoặc khóa) giống nhau, các giá trị thuộc tính xuất hiện sau trong danh sách tham số sẽ ghi đè lên các thuộc tính xuất hiện trước đó.

cú pháp

Object.assign(targetObject, ...sourceObject);

Giá trị trả về

Object.assign() trả về targetObject.

ví dụ

Sửa đổi và sao chép targetObject:

let obj = {name: 'Dave', age: 30};

let objCopy = Object.assign(obj, {coder: true});

console.log(obj); // { name: 'Dave', age: 30, coder: true }
console.log(objCopy); // { name: 'Dave', age: 30, coder: true }

Sao chép targetObject không sửa đổi:

let obj = {name: 'Dave', age: 30};

let objCopy = Object.assign({}, obj, {coder: true});

console.log(obj); // { name: 'Dave', age: 30 }
console.log(objCopy); // { name: 'Dave', age: 30, coder: true }

Các đối tượng có cùng thuộc tính:

let obj = {name: 'Dave', age: 30, favoriteColor: 'blue'};

let objCopy = Object.assign({}, obj, {coder: true, favoriteColor: 'red'});

console.log(obj); // { name: 'Dave', age: 30, favoriteColor: 'blue' }
console.log(objCopy); // { name: 'Dave', age: 30, favoriteColor: 'red', coder: true }

Phương pháp giá trị đối tượng

Các Object.values() phương thức lấy một đối tượng làm tham số và trả về một mảng các giá trị của nó. Điều này làm cho nó hữu ích cho chuỗi với phổ biến Array phương pháp như .map(), .forEach().reduce().

cú pháp

Object.values(targetObject);

Giá trị trả về

Một mảng của đối tượng đã truyền (targetObject) các giá trị.

ví dụ

const obj = { 
  firstName: 'Quincy',
  lastName: 'Larson' 
}

const values = Object.values(obj);

console.log(values); // ["Quincy", "Larson"]

Nếu đối tượng bạn đang chuyển có số làm khóa, thì Object.value() sẽ trả về các giá trị theo thứ tự số của các phím:

const obj1 = { 0: 'first', 1: 'second', 2: 'third' };
const obj2 = { 100: 'apple', 12: 'banana', 29: 'pear' };

console.log(Object.values(obj1)); // ["first", "second", "third"]
console.log(Object.values(obj2)); // ["banana", "pear", "apple"]

Nếu một cái gì đó không phải là một đối tượng được chuyển đến Object.values()nó sẽ được ép buộc vào một đối tượng trước khi được trả về dưới dạng một mảng:

const str="hello";

console.log(Object.values(str)); // ["h", "e", "l", "l", "o"]

Phương thức hasOwnProperty đối tượng

Các Object.hasOwnProperty() phương thức trả về một boolean cho biết đối tượng có sở hữu thuộc tính đã chỉ định hay không.

Đọc thêm  Làm tổ cho các vòng lặp trong JavaScript

Đây là một phương pháp thuận tiện để kiểm tra xem một đối tượng có thuộc tính được chỉ định hay không vì nó trả về true/false tương ứng.

cú pháp

Object.hasOwnProperty(prop)

Giá trị trả về

true
// or
false

ví dụ

sử dụng Object.hasOwnProperty() để kiểm tra xem một thuộc tính có tồn tại hay không trong một đối tượng nhất định:

const course = {
  name: 'freeCodeCamp',
  feature: 'is awesome',
}

const student = {
  name: 'enthusiastic student',
}

course.hasOwnProperty('name');  // returns true
course.hasOwnProperty('feature');   // returns true

student.hasOwnProperty('name');  // returns true
student.hasOwnProperty('feature'); // returns false

Phương thức getOwnPropertyNames đối tượng

Các Object.getOwnPropertyNames() phương thức lấy một đối tượng làm tham số và trả về và mảng tất cả các thuộc tính của nó.

cú pháp

Object.getOwnPropertyNames(obj)

Giá trị trả về

Một mảng các chuỗi thuộc tính của đối tượng đã truyền.

ví dụ

const obj = { firstName: 'Quincy', lastName: 'Larson' }

console.log(Object.getOwnPropertyNames(obj)); // ["firstName", "lastName"]

Nếu một cái gì đó không phải là một đối tượng được chuyển đến Object.getOwnPropertyNames()nó sẽ được ép buộc vào một đối tượng trước khi được trả về dưới dạng một mảng:

const arr = ['1', '2', '3'];

console.log(Object.getOwnPropertyNames(arr)); // ["0", "1", "2", "length"]

Promise.prototype.then

Một Promise.prototype.then hàm chấp nhận hai đối số và trả về một Lời hứa.

Đối số đầu tiên là một hàm bắt buộc chấp nhận một đối số. Thực hiện thành công một Lời hứa sẽ kích hoạt chức năng này.

Đối số thứ hai là một hàm tùy chọn cũng chấp nhận một đối số của chính nó. Lỗi bị ném hoặc Từ chối lời hứa sẽ kích hoạt chức năng này.

   function onResolved (resolvedValue) {
     /*
     * access to resolved values of promise
     */
   }
 
  function onRejected(rejectedReason) {
     /*
     * access to rejection reasons of promise
     */
   }

  promiseReturningFunction(paramList)
     .then( // then function
       onResolved,
       [onRejected]
     );

Promise.prototype.then cho phép bạn thực hiện nhiều hoạt động không đồng bộ theo trình tự. Bạn làm điều này bằng cách đính kèm một then chức năng này sang chức năng khác được phân tách bằng toán tử dấu chấm.

   promiseReturningFunction(paramList)
   .then( // first then function
     function(arg1) {
       // ...
       return someValue;
     }
   )
   ...
   .then( // nth then function
     function(arg2) {
       // ...
       return otherValue;
     }
   )

Map.prototype.entries

Trả về một cái mới Iterator đối tượng chứa [key, value] cặp cho mỗi phần tử trong Map đối tượng theo thứ tự chèn.

Đọc thêm  Cách hoán đổi hai phần tử mảng trong JavaScript – Chuyển đổi các phần tử trong JS

cú pháp

myMap.entries()

Ví dụ

const myMap = new Map();
myMap.set('foo',1);
myMap.set('bar',2);
myMap.set('baz',3);


var iterator = myMap.entries();

console.log(iterator.next().value); // ['foo', 1]
console.log(iterator.next().value); // ['bar', 2]
console.log(iterator.next().value); // ['baz', 3]

Thông tin thêm về các đối tượng trong JavaScript:

Thông tin thêm về booleans:



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status