2013-02-22 26 views
2

任何人能解釋一下叫什麼hasOwnProperty對空對象呢?爲什麼要使用它?你如何使用hasOwnProperty?

__hasProp = {}.hasOwnProperty 

我發現這個時候,我開始在coffescript開發..泰

+1

沒有咖啡解析器將它添加到生成的代碼?看起來它只是做一個簡短的參考。 – 2013-02-22 21:22:46

+0

'hasOwnProperty'是標準的JavaScript。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty – Marc 2013-02-22 21:23:53

+0

我覺得這是一個大的離奇,但它的作用是基本對象的'hasOwnProperty'方法複製到一個命名變量'__hasProp'。也許這是因爲名字較短? – 2013-02-22 21:24:08

回答

9

hasOwnProperty調用。函數名稱後沒有括號。

__hasProp參考Object.prototype.hasOwnProperty[MDN]因爲

__hasProp = {}.hasOwnProperty 

__hasProp = Object.prototype.hasOwnProperty 

較短版本現在調用__hasProp,例如在

__hasProp.call(someObject, 'foo') 

是米UCH更短,更易於閱讀比

Object.prototype.hasOwnProperty.call(someObject, 'foo') 

我公司成立時,我開始coffescript的發展。

所以,我認爲是自動生成的這條線,你可能會奇怪爲什麼創建一個快捷方式,如果沒有人實際上有寫代碼?

有了這個功能分配給一個變量避免了查找你想用的時候就ObjectObject.prototypeObject.prototype.hasOwnProperty__hasProp只是一個查詢,而不是三個,並且經常使用時,可能會導致輕微的性能提升。

+0

瞭解,+1 thx :) – 2013-02-22 22:41:54