1. 程式人生 > 實用技巧 >物件和包裝類

物件和包裝類

物件是一種基礎的變數型別,ES5物件。Javascript最大的特點是可以增加或者刪除自己的屬性和方法。

刪除屬性,再輸出不存在的屬性會顯示undefined

var person = {
        DOB: '',
        name: '',
        gender:'',
        phone:'',
        smoke: function(){
            console.log("cool!!");
        },
        swimm: 1
    }

    console.log(person.swimm);
    console.log(person.smoke());
    
// 刪除屬性,再輸出不存在的屬性會顯示undefined delete person.swimm; console.log(person.swimm);

物件的建立方法

/*
    物件的建立方法
    */
    // 1. 直接構造
    var obj1 = {}
    // 2. 使用系統建構函式,等效於直接構造
    var obj2 = new Object();
    obj2.name = '系統構造';
    // 3. 自定義建構函式:函式名稱的一切首字母大寫
    function Car(id){
        this.id = id;
        
this.brand = "trash"; this.changeBrand = function(br){ this.brand = br; } // return {}; 這是搗亂 // return this; 預設 return 123; // new 了之後,返回的依然是this而不是123 } var car = new Car(10); car.speed = 1000; console.log(car.speed); car.changeBrand("Bench"); console.log(car.brand);
var car1 = new Car(11); console.log(car1.brand); console.log(car1.id);

ES6建立類(和python,Java類似)

    class Person{
            dob = "";
            name = "";
            phone = "";
            health = 100;
        constructor(dob){
            this.dob = dob;
        }

        smoking(){
            this.health--;
            return "Fuck!!";
        }

        getDOB(){
            return this.dob;
        }

        getHealth(){
            return this.health;
        }
    }

    var p = new Person("1994");
    p.smoking();
    console.log(p.getDOB());
    console.log(p.getHealth());

原始值如string,number是不能有屬性和方法的

為了讓原始值能夠呼叫方法方便操作,JavaScript提供包裝類來解決這些

    var x = 123;
    var s = "aaa";

    var x1 = new Number(123);
    console.log(x1.toFixed(2)); // 方法,返回前兩位
    console.log(x+x1);
    var s1 = new String('abc');
    console.log(s1.repeat(2)); // 方法,複製一遍
    console.log(s+s1);

    

轉換-元型別-》生成包裝類 -》刪除包裝類 -》返回資料

    var l = s.length; // 系統後臺:new String(s).length
    s.length = 1;
    // 系統後臺:new String(s).length = 1,然後銷燬String(s),不影響s
    console.log(s.length);