關於Object的那些事

2021-10-01 09:01:43 字數 1826 閱讀 2718

以指定物件為原型建立新的物件

var obj =

var obj2 = object.

create

(obj,})

obj2.age =

18//不可做任何操作,原因可看object.defineprototype

//obj2繼承了obj,所以obj2有obj的屬性

判斷是否是自有屬性,而不是繼承屬性

var obj =

var obj2 = object.

create

(obj)

obj2.age =

'18'

console.

log(obj2.

hasownprototype

('age'))

//true

console.

log(obj2.

hasownprototype

('name'))

//false

//返回的是boolean值

在乙個物件上定義乙個新屬性,或者修改乙個已經存在的屬性,並返回這個物件

var obj =

object.

defineprototype

(obj,

'age',)

object.

defineprototype

(obj,

'age',)

//只設定乙個value值,其他3個配置即為false

object.

defineprototype

(obj,

'age',,

get:

function()

})//此方法可以實現資料的雙向繫結(vue3.0以下是通過這個實現的)

返回該物件的所有屬性名(乙個表示給定物件的所有可列舉屬性的字串陣列)

var obj =

object.

keys

(obj)

//['name', 'age', '***']

返回該物件的所有屬性值(乙個包含物件自身的所有可列舉屬性值的陣列)

var obj =

object.

values

(obj)

//['南瓜', 18, 0]

拷貝物件(將所有可列舉屬性的值從乙個或多個源物件複製到目標物件),如果目標物件中的屬性具有相同的鍵,則屬性將被源物件中的屬性覆蓋。後面的源物件的屬性將類似地覆蓋前面的源物件的屬性

該屬性只能實現淺拷貝,無法實現深拷貝

var obj =

var obj2 =

object.

assign

(obj, obj2)

//obj = 返回目標物件

返回指定物件所有自身屬性(非繼承屬性)的描述物件

通過這個方法可以解決 object.assign() 無法正確拷貝 get 屬性和 set 屬性的問題 (object.getownpropertydescriptors 方法配合 object.defineproperties 方法就可以實現正確拷貝)

var obj =

var obj2 = object.

create

(obj)

obj2.age =

'18'

object.

getownpropertydescriptors

(obj2)

//age:

關於開始的那些事

人總是有惰性的,當然我自己深有體會。一直有個想法想寫寫自己的blog,但隨時間的推移,很久都沒付出行動。最近工作專案開始不那麼忙了,維護乙份自己的blog的想法愈發強烈了。想把自己的一些想法,或者看到的一些有用的東西給大家分享,也給自己留下成長的痕跡。我從小喜歡看書,各種各樣的書屬於不求甚解的狀態。...

關於coredump的那些事

今天在網上搜了一些有關coredump的知識,簡單記一下,以防忘記 core dump檔名的模式儲存在 proc sys kernel core pattern中,預設是core 主要是今天比較鬱悶,要除錯程式crash,就用ulimit c unlimited設定了一下core檔案的大小,但是測試...

關於STL 的那些事

今晚參加訓練。樹狀陣列的練習,傻乎乎的用stl做了一晚,雖然題沒做出來,不過對stl的查詢有了更深一層的理解。關於stl。輸入輸出 vector push back pop back stack push pop queue push pop 頭 front 尾 back priority queu...