物件和包裝類
阿新 • • 發佈:2020-11-29
物件是一種基礎的變數型別,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);