在建構函式中,同一類相同的方法可以直接寫在建構函式裡,但這樣每例項化乙個物件都會產生乙個新的該方法,但其實這個方法都是一樣的,這樣會浪費大量空間,另外,可以將相同的方法寫在建構函式外,這樣雖然解決了空間浪費問題,但在全域性作用域設定變數汙染了命名空間,也不安全。這時可以將相同的屬性和方法放在原型物件中。
function
fun();
var sun1 =
newfun()
;console.
log(fun.prototype)
console.
log(sun1.__proto__)
// 返回 true,說明由fun例項化來的fun1中的__proto__指向fun的原型物件
console.
log(fun.prototype == sun1.__proto__)
[外鏈轉存失敗(img-t8p2zsx1-1562224188995)(image/yuanxing.jpg)]
當我們訪問乙個物件的屬性或方法時,會現在自身找,找不到就去原型中找,找不到就去原型的原型中找,直到找到object,object是所有物件的原型
function
car(
)car.prototype.
print
=function()
JS 物件 JS原型 原型鏈
參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...
JS原型物件
原型prototype 將函式定義在全域性作用域中的缺點 1.會汙染全域性作用域的命名空間,如 函式functiona 那麼在全域性作用域中就不能再出現functiona這個命名了。2.定義在全域性作用域中不安全。因此,就用到了主角 原型 1.所有的函式都有原型物件 2.當函式以建構函式的形式呼叫時...
js物件 原型
物件 在js裡,除了字串,數字,boolean,null和undefined之外,其他的js值都是物件。js中物件可以分為普通物件和函式物件。普通物件 是除函式物件外的,都可以成為普通物件。函式物件 是通過new function產生的物件。這一種是最常見的定義函式的方法 function foo1...