js知識詳解

對象

對象的分類

1內建對象

ES定義的標準對象,在任何的js代碼中都可以使用

比如:Math,String,Number,Boolean,Function,Object。。。

2宿主對象

由js的運行環境提供的對象,主要指瀏覽器提供的對象

例如:BOM,DOM

3自定義對象(函數)

由開發人員自己定義的對象

創建對象

使用new調用的函數是構造函數,構造函數就是用來創建對象的。

var a = new Object();

向對象裏添加一個屬性

對象.屬性名 = 屬性

刪除一個屬性

delete 對象.屬性名

對象的屬性名很開放,可以隨便取

a['123']但調用的時候也要這樣調用

檢查一個對象裏是否有某個屬性

console.log("['123']" in a)

基本數據類型和引用數據類型

基本數據類型的值保存在棧裏,值與值之間是獨立的

let a = 123

let b = a

console.log(a)//123

console.log(b) //123

console.log(++a)//124

console.log(b)//123

引用數據類型的值保存在堆裏,棧裏保存的是值的地址。

對象字面量

{} 等價於 new Object()

{屬性:值}//創建的時候也可以添加數據

object和Function的區別

object 對象裏只能裝屬性,Function對象裏既可以裝屬性也可以裝可執行的代碼。

var fun = new Function() // 用構造函數的方法新建一個函數對象(在new的時候會執行所有函數內的代碼)

function  函數名(arguement1,arguement2){  } // 函數聲明的方式新建一個函數對象

var fun = function() {} // 使用函數表達式來創建一個函數對象

構造函數,類(首字母要大寫)

構造函數就是一個普通的函數,創建時習慣首字母大寫

調用是通過new來調用

使用構造函數創建出的對象叫做一類對象,我們也叫做類。

通過類創建出來的對象叫做實例。

每一種對象都屬於一種類型,每種類型都有不同的作用,類性>對象>實例

1立刻創建一個新的對象。

2this指向新建的對象(理解爲this就是新建的對象)。

3逐行執行函數裏的代碼。

4將對象作爲返回值返回。

prototype

 

        function First(a,b) {
            this.a = a
            this.b = b
            var d = me()
        }
        // 會造成全局污染
       function me() {
            alert("aaaaaaaaaaaaaaaaaaa")
       }
       // 使用prototype屬性添加
        First.prototype.my = function(){
            alert('ssssssssssssssssssss')
        }
        let one = new First(1,2)
        one.my()

// Object爲最後的原型

 

 

 

 

 

 

 

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