js屬性型別以及vue的基本原理

2022-08-03 03:51:16 字數 1141 閱讀 7478

參考ecmascript5

屬性有2種,資料屬性和訪問器屬性。

資料屬性:

擁有4個特性:

configurable 表示能否通過delete刪除屬性從而重新定義屬性,能否修改屬性的特性,或者能否把屬性修改為訪問器屬性。預設為true,如果將其設定為false,則不能再變回true了,除了writable特性可以設定以外,其餘都不可設定

enumerable 表示能修改通過for-in迴圈返回屬性。預設為true

writable 表示能否修改屬性的值。預設為true

value 包含這個屬性的資料值。預設為underfined

這4個特性是內部值,不能直接訪問,只能使用object.defineproperty()方法進行修改。

eg:object.defineproperty(obj,key,);

如果在使用其建立新屬性時不指定特性值,則預設值都是false,如果是修改已定義的則無此限制

訪問器屬性:

訪問器屬性不包含資料值,它們包含一對getter和setter函式,擁有以下4個特性:

前2個特性是一樣的,之後的2個特性為get和set

訪問器屬性不能直接定義,必須使用object.defineproperty建立訪問器屬性。

可以使用object.defineproperties(obj,json)來建立多個屬性

我們知道vue有個很好用的特性,即資料雙向繫結,這裡我試著編寫了乙個簡單的具有雙向繫結特性的建構函式:

function cl(obj) catch (err)

if(typeof obj.data == 'function') else

if(this.data)

this.target.innerhtml = formatstring(this.template,this)

object.freeze(this)

}function formatstring(str,data) \}','g'),(match,$1)=>else

})}function setobject(obj,this) ,

[key]:,

set(newval)}})

}}

後續會對這段**進行解釋,寫的比較隨意,如有錯誤請指正。

js中基本型別以及 和 說明

1 js資料型別型別 1 五種基本型別分別為 string型別 字串型別 number 型別 數值型別 數值和 nan boolean型別 布林型別 只有true和false兩個值。null 空 undefined 未定義 2 一種複雜資料型別 object型別 物件型別 2 用typeof操作符檢...

Vue 指令的基本原理(可能)

const object1 object.defineproperty object1,property1 object1.property1 77 throws an error in strict mode 嚴格模式下錯誤console.log object1.property1 expecte...

關於js中的堆和棧以及基本型別和引用型別的理解。

堆 heap 和棧 stack 棧 stack 會自動分配記憶體空間,會自動釋放。堆 heap 動態分配的記憶體,大小不定也不會自動釋放。基本型別 基本資料型別包括undefined,string,boolean,null,number,存放在棧記憶體中,佔據固定大小的空間。引用型別 引用型別 指那...