1. 程式人生 > 資訊 >“諜戰大片”!百度員工跳槽位元組跳動被判賠近百萬元

“諜戰大片”!百度員工跳槽位元組跳動被判賠近百萬元

面向物件:

面向物件程式設計思想,把事物分解成一個個物件,然後由物件分工與合作,每一個函式,

一定會有一個原型,屬性的選擇性放在例項化的物件中,函式寫在原型上。

面向物件,具有更好的靈活性,程式碼可服用,容易維護和開發。

具有封裝性(低耦合,高內聚),繼承性(子類繼承父類中的一些屬性和方法),多型性(過載)。

面向物件的思維特點:

  抽取物件共用的屬性和方法封裝成一個類

  對類進行例項化,獲取類的物件,每例項化一次就產生一個新的物件

constructor屬性
1.每個物件在建立時都會自動擁有一個建構函式屬性constructor

2.constructor是通過繼承關係繼承下來的,當前例項的物件父類就是__proto__,

裡面就有constructor屬性,它繼承了原型物件,constructor指向了當前的建構函式

3.constructor屬性表示原型物件和建構函式之間的關聯關係

class Name {
    constructor(uname) {
        // 方法體
        this.uname = uname;
    }
}
var name = new Name('啊啊啊');
console.log(name.uname);
// 輸出:啊啊啊

原型物件 (prototype)

  1. 構造方法的問題:浪費記憶體的問題,複雜資料型別 (例如函式) 他會另外開闢一個記憶體空間存相同的資料

         2.為了解決這個問題,每個建構函式都會有一個自帶的物件 prototype,我們可以把那些不變的方法直接定

           義在 prototype 上,所有的物件可以共享這些方法

function Star(uname, age) {
    // 變數
    this.uname = uname;
    this.age = age;
}
// 原型物件裡的方法
Star.prototype.sing = function() {
    console.log('我會唱歌');
}

call 函式

call 可以呼叫函式,call 改變函式的 this 指向 (第一個引數代表函式的 this 指向,後面的引數代表傳遞引數)

用 call 函式來呼叫父建構函式,但是需要把父建構函式裡面的 this 都變為子建構函式的 this

function Father(uname, age) {
    // this 指向 Father
    this.uname = uname;
    this.age = age;
}
function Son(uname, age) {
    // 使 Son 繼承 Father 的屬性
    Father.call(this, uname, age);
}