JS-14-對象-屬性 / 遍歷 / 解構賦值

一、對象屬性相關

  1. 什麼是instanceof關鍵字?
    instanceof用於判斷 “對象” 是否是指定構造函數的 “實例”;
  • instanceof注意點:只要 構造函數的原型對象出現在實例對象的原型鏈中都會返回true;
    console.log(stu instanceof Person); // true
  1. JavaScript-isPrototypeOf屬性
    1.什麼是isPrototypeOf屬性: isPrototypeOf用於判斷 一個對象是否是另一個對象的原型;
    console.log(Person.prototype.isPrototypeOf(stu)); // true
  • isPrototypeOf注意點:只要調用者在傳入對象的原型鏈上都會返回true;
  1. JavaScript-判斷對象屬性
  • 需求: 判斷某一個對象是否擁有某一個屬性;
    in的特點: 只要類中或者原型對象中有, 就會返回true;
    console.log("name" in p); // true

  • 需求: 判斷某一個對象自身是否擁有某一個屬性;
    console.log(p.hasOwnProperty("name")); //true;


二、什麼是對象的遍歷?

對象的遍歷就是依次取出對象中所有的屬性和方法;

  1. 如何遍歷一個對象?
    在JS中可以通過高級for循環來遍歷對象;

以下代碼的含義: 將指定對象中所有的屬性和方法的名稱取出來了依次的賦值給key這個變量;
for(let key in obj){}

例:

  function Person(myName, myAge){
            this.name = myName;
            this.age = myAge;
            this.say = function(){
                console.log(this.name, this.age);
            }
        }
  let p = new Person("abc", 22);
  console.log(p);
  
  for(let key in p){
            if(p[key] instanceof Function){
                continue;
            }
            
            // console.log(key); // name / age / say
            // 注意點: 以下代碼的含義取出p對象中名稱叫做當前遍歷到的名稱的屬性或者方法的取值;
            
            console.log(p[key]); // p["name"] / p["age"] / p["say"]
            // 注意點: 以下代碼的含義取出p對象中名稱叫做key的屬性的取值
            // console.log(p.key); // undefined
        }

四、JavaScript-對象解構賦值

注意點: 在對象解構賦值中, 左邊的變量名稱必須和對象的屬性名稱一致, 才能解構出數據;

例:
let {name, age} = {name: "abc",age: 34};

let {age} = {name: "abc",age: 34};
        console.log(age); // 34
數組解構賦值應用舉例:
let arr = [1, 3];

function sum([a, b]) {
            return a + b;
        }
        
 // let res = sum(arr[0], arr[1]);
 let res = sum(arr);
     
  console.log(res);
  
****************************
對象解構賦值應用:
let obj = {
            name: "abc",
            age: 33
        }
       
function say({name, age}) {

     console.log(name, age);
        }
        
say(obj); 
      

-End

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章