2016-10-25 65 views
2

我碰到這個通道在精彩的書能言善辯的JavaScript傳來:對象從構造函數返回沒有原型

構造函數(事實上,所有的功能),自動獲得一個屬性 命名爲原型,它通過默認包含一個普通的空對象, 派生自Object.prototype。使用此構造函數創建的每個實例都將使用此對象作爲其原型。

所以我想我會測試它。

function Person() {} 

person = new Person() 

console.log(Person.prototype) // Object {} 
console.log(person.prototype) // undefined ???? :O 

第一console.log是有道理的,但爲什麼第二個節目undefined

+3

原型不能使用'prototype'財產,除非它被明確定義訪問的原型。您可以使用'__proto__'屬性查看繼承的原型屬性。 – Tushar

+5

請參閱:http://stackoverflow.com/q/9959727/5647260 – Li357

+1

@Tushar謝謝!請添加,作爲答案,我會接受它。 :-) – dotslash

回答

1

使用Object.getPrototypeOf獲得指定對象

function Person() {} 
 
person = new Person(); 
 
console.log(Person.prototype); 
 
console.log(Object.getPrototypeOf(person));

+1

*當前標準提供了一個等效的Object.getPrototypeOf(O)方法,儘管事實上的標準'__proto__'更快。* - 來自[here](http://stackoverflow.com/q/9959727/5647260)。 – Li357

+0

我想我總是會使用'Object.getPrototypeOf'來使事情變得簡單。不過,瞭解細節還是很好的。 – dotslash

相關問題