日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JS 原型链 prototypt 和隐式原型 _proto_

發布時間:2025/3/18 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS 原型链 prototypt 和隐式原型 _proto_ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

prototype(原型) :? 對象的一個屬性,此屬性使您有能力向對象添加屬性和方法,當訪問對象不存在屬性是會自動到 prototype 中找

_proto_(隱式原型): 此對象構造函數(類)的原型(prototype)

constructor: 原型對象的一個屬性,指回原構造函數

注意

  基于同一個類(構造函數)生產的對象共享一個 prototype , 任何一個對象修改會影響其他對象,例如下面代碼中,xiaohei 修改了Dog 類prototype中的 foods 屬性,xiaobai 的也隨之改變

function Dog(name,color){this.name = namethis.color = color}Dog.prototype={foods : ['bones','meal','fish'],say : function(){console.log('汪汪汪,my name is '+this.name)},eat : function(){console.log('my foods is '+this.foods.join(','))}}var xiaohei = new Dog('小黑','black');var xiaobai = new Dog('小白','white');xiaohei.__proto__.foods.push('shit');xiaobai.eat();輸出 : my foods is bones,meal,fish,shit

使用new關鍵字調用函數(new?ClassA(…))的具體步驟:

1. 創建空對象;
  var obj = {};

2. 設置新對象的constructor屬性為構造函數的名稱,設置新對象的__proto__屬性指向構造函數的prototype對象;
  obj.__proto__ = ClassA.prototype;

3. 使用新對象調用函數,函數中的this被指向新實例對象:
  ClassA.call(obj);  //{}.構造函數(); ? ? ? ? ?

4. 將初始化完畢的新對象地址,保存到等號左邊的變量中

?

?

總結:

  • 對象有屬性__proto__,指向該對象的構造函數的原型對象。
  • 方法除了有屬性__proto__,還有屬性prototype,prototype指向該方法的原型對象。

轉載于:https://www.cnblogs.com/xiaoliwang/p/9035200.html

總結

以上是生活随笔為你收集整理的JS 原型链 prototypt 和隐式原型 _proto_的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。