搜尋: 方應航 new
例子
var object = new Object()
複製程式碼
自由屬性 空
object.proto === Object.prototype
var array = new Array(`a`,`b`,`c`)
複製程式碼
自由屬性 0: 'a' 1:'b' 2:'c'
array.proto === Array.prototype
Array.protype.proto === Object.prototype
var fn = new Function('x','y','return x+y')
複製程式碼
自由屬性 length:2,不可見的函式體: 'return x+y' fn.proto === Function.prototype
Array is a function Array = function(){...} Array.proto === Function.prototype
注意
使用new時,需要記錄下來是誰創造了這個物件。所以會有一個預設的prototyoe = {constructor: 士兵},如果我們直接對prototype賦一個物件,那麼原來的prototype就會被回收。那麼有兩種方法可以解決這個問題:
- 在士兵.prototype={···}中新增
constructor: 士兵
。 - 在原有的士兵.prototype上新增屬性,比如
士兵.prototype.兵種 ="美國大兵"
。