Javascript基本概念梳理

javascript裡的數據類型:

原始類型:數字,字符串,佈爾值。(原始值:null,undefined)

對象類型:鍵值對,數組,function,全局對象(MATH,JSON)

包裝對象的概念:

字符串”aaa”.len 字符串並不是對象,但是卻可以調用它的屬性,說明這隻是一個臨時對象,內部用new String()來創建的臨時的。

原始類型是永遠不可變的,所以可以比較他們的值,但是對象類型是可變的,不能比較他們的值.

Javascript原型和繼承:

Javascript裡每個對象都和另外一個對象關聯,這個對象就是__proto__(原型對象)註意這裡的原型對象並不是prototype。

解釋一下:這裡的prototype指的是通過關鍵字new和構造函數調用創建的對象的原型就是構造函數的prototype屬性。

對象實例的__proto__指向這個對象的prototype,而對象的__proto__為空。舉個例子就是:

var array = new Array();
array.__proto__ === Array.prororype  //true
Array.__proro //null

當然,也可以使用Object.getPrototypeOf()替代__proto__來使用來得到對象所繼承的原型,舉例說明:

Object.getPrototypeOf(Array) === Array.__proto__;

Object.getPrototypeOf()來查看原型繼承,例如:

Object.getPrototypeOf(Array.prototype) // Object  

可以看出Array的prototype繼承Object所以Array也有他的方法例如totring()等。可以得到所有的對象都有一個共同的原型,就是Object但是Object隻是一個構造函數,想要訪問他,就隻用Object..prototype來得到。

例如,Object..getPrototypeOf()來查看自定義的繼承

function A(){};
function B(){};
A.prototype = new B();
Object.getPrototypeOf(A.prototype) //B

發佈留言