最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

prototype與__proto__區(qū)別詳細介紹

 更新時間:2017年01月09日 10:23:24   投稿:lqh  
這篇文章主要介紹了prototype與__proto__區(qū)別詳細介紹的相關資料,需要的朋友可以參考下

prototype與__proto__區(qū)別

Each constructor is a function that has a property named “prototype” that is used to implement prototype-based inheritance and shared properties. Every object created by a constructor has an implicit reference (called the object's prototype) to the value of its constructor's “prototype” property.
When a constructor creates an object, that object implicitly references the constructor's prototype property for the purpose of resolving property references. The constructor's prototype property can be referenced by the program expression constructor.prototype, and properties added to an object's prototype are shared, through inheritance, by all objects sharing the prototype. Alternatively, a new object may be created with an explicitly specified prototype by using the Object.create built-in function. –ECMAScript® 2015 Language Specification

__proto__是每個對象都有的一個屬性,而prototype是函數才會有的屬性!!!

使用Object.getPrototypeOf()代替__proto__!!!

一、prototype

幾乎所有的函數(除了一些內建函數)都有一個名為prototype(原型)的屬性,這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以有特定類型的所有實例共享的屬性和方法。prototype是通過調用構造函數而創(chuàng)建的那個對象實例的原型對象。hasOwnProperty()判斷指定屬性是否為自有屬性;in操作符對原型屬性和自有屬性都返回true。

示例:自有屬性&原型屬性

var obj = {a: 1};
obj.hasOwnProperty("a"); // true
obj.hasOwnProperty("toString"); // false
"a" in obj; // true
"toString" in obj; // true

示例:鑒別原型屬性

function hasPrototypeProperty(obj, name){
  return name in obj && !obj.hasOwnProperty(name);
}

二、__proto__

對象具有屬性__proto__,可稱為隱式原型,一個對象的隱式原型指向構造該對象的構造函數的原型,這也保證了實例能夠訪問在構造函數原型中定義的屬性和方法。

function Foo(){}
var Boo = {name: "Boo"};
Foo.prototype = Boo;
var f = new Foo();

console.log(f.__proto__ === Foo.prototype); // true
console.log(f.__proto__ === Boo);  // true
Object.getPrototypeOf(f) === f.__proto__;  // true

三、Object.getPrototypeOf()

一個對象實例通過內部屬性[[Prototype]]跟蹤其原型對象。使用原型對象的好處是可以讓所有對象實例共享它所包含的屬性和方法??梢哉{用對象的Object.getPrototypeOf()方法讀取[[Prototype]]屬性的值,也可以使用isPrototypeOf()方法檢查某個對象是否是另一個對象的原型對象。大部分JavaScript引擎在所有對象上都支持一個名為__proto__的屬性,該屬性可以直接讀寫[[Prototype]]屬性。

示例:原型對象

function Person(name) {
  this.name = name;
}
Person.prototype = {
  constructor: Person,
  sayName: function(){
    console.log("my name is " + this.name);
  }
}
var p1 = new Person("ligang");
var p2 = new Person("Camile");
p1.sayName();  // my name is ligang
p2.sayName();  // my name is Camile

While Object.prototype.proto is supported today in most browsers, its existence and exact behavior has only been standardized in the ECMAScript 6 specification as a legacy feature to ensure compatibility for web browsers. For better support, it is recommended that only Object.getPrototypeOf() be used instead. –MDN

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 微信小程序學習筆記之表單提交與PHP后臺數據交互處理圖文詳解

    微信小程序學習筆記之表單提交與PHP后臺數據交互處理圖文詳解

    這篇文章主要介紹了微信小程序學習筆記之表單提交與PHP后臺數據交互處理,結合實例形式詳細分析了微信小程序前臺數據form表單提交及后臺使用php進行處理相關操作技巧,并配以圖文形式詳細說明,需要的朋友可以參考下
    2019-03-03
  • JavaScript封裝彈框插件的方法

    JavaScript封裝彈框插件的方法

    這篇文章主要為大家詳細介紹了JavaScript封裝彈框插件的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 簡單實現js菜單欄切換效果

    簡單實現js菜單欄切換效果

    這篇文章主要教大家如何簡單實現js菜單欄切換效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • javascript實現移動端上的觸屏拖拽功能

    javascript實現移動端上的觸屏拖拽功能

    這篇文章主要為大家詳細介紹了基于javascript實現移動端上的觸屏拖拽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JS實現煙花爆炸效果

    JS實現煙花爆炸效果

    這篇文章主要為大家詳細介紹了JS實現煙花爆炸效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js 轉義字符及URI編碼詳解

    js 轉義字符及URI編碼詳解

    本文主要介紹了轉義字符及URI編碼的相關知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 破解Session cookie的方法

    破解Session cookie的方法

    破解Session cookie的方法...
    2006-07-07
  • javascript中innerText和innerHTML屬性用法實例分析

    javascript中innerText和innerHTML屬性用法實例分析

    這篇文章主要介紹了javascript中innerText和innerHTML屬性用法,實例分析了javascript中innerText和innerHTML屬性的作用和相關的使用技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript實現滑動門效果

    JavaScript實現滑動門效果

    這篇文章主要為大家詳細介紹了JavaScript實現滑動門效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 原生JS下拉加載插件分享

    原生JS下拉加載插件分享

    本文主要分享了原生JS下拉加載插件的實現代碼。具有一定的參考價值,需要的朋友一起來看下吧
    2016-12-12

最新評論

册亨县| 宜兰市| 二连浩特市| 儋州市| 松阳县| 仪陇县| 淄博市| 历史| 乌什县| 威信县| 福安市| 麻城市| 巩留县| 常熟市| 山东省| 常德市| 新晃| 康乐县| 鹰潭市| 兰溪市| 延川县| 保康县| 永仁县| 正镶白旗| 金平| 台中县| 玉山县| 融水| 鹿泉市| 永丰县| 浦城县| 白朗县| 丹阳市| 桃源县| 巴青县| 包头市| 龙南县| 秦安县| 禄丰县| 新乡市| 太谷县|