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

JS原型對象操作實例分析

 更新時間:2020年06月06日 10:39:57   作者:Jacano  
這篇文章主要介紹了JS原型對象操作,結(jié)合實例形式分析了JS原型對象基本原理、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了JS原型對象操作。分享給大家供大家參考,具體如下:

萬物皆對象,函數(shù)也同樣是對象,是特殊的函數(shù)對象

function fn() {}
let a = new fn();
let b = new Function()

console.log(typeof a);  // object 
console.log(typeof b);  // function

打開瀏覽器,輸入fn,會發(fā)現(xiàn)fn有一個prototype(原型)屬性,這個屬性是一個指針,指向原型對象,這個對象包括了特定類型所有共享的屬性和方法。
換句話說,prototype對象包含了函數(shù)所有的共享屬性和方法。

function fn() {}
fn.prototype.a = 18;
fn.prototype.b = "b";
fn.prototype.test = function() {
 console.log(123);  
}
var r = new fn();
console.log(r.a);  // 18

我們直接在函數(shù)fn的原型屬性上加了兩個屬性和一個方法,實例化后便可以訪問原型中的值。

  • 原型對象有一個constructor屬性,它也是一個指針,它指向原來的函數(shù),也就是說,fn.prototype.constructor == fn。
  • 所有的實例都有這個原型對象,因此實例可以訪問到原型對象中的屬性和方法。

那么實例怎么搜索變量或者方法的值呢?首先,函數(shù)實例會在函數(shù)本身上去尋找該變量,如果沒有找到,會在原型對象上尋找變量。

function fn() {}
fn.prototype.a = 18;
fn.prototype.b = "b";
fn.prototype.test = function() {
 console.log(123);
}
var a = new fn();
var b = new fn();
b.a = 20
console.log(b.a);  // 20
console.log(a.a);  // 18

創(chuàng)建了兩個實例,在b實例上手動添加了一個a屬性,在fn的原型對象上也有一個a屬性,那么對于b實例會優(yōu)先訪問本身的屬性而不是原型上的屬性。

參考內(nèi)容JavaScript高級程序設(shè)計

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

最新評論

桃江县| 长宁县| 应用必备| 青浦区| 普陀区| 巴里| 诏安县| 平罗县| 荆门市| 永修县| 宽城| 桂平市| 横峰县| 苏尼特右旗| 正定县| 宁晋县| 祁阳县| 天门市| 漳州市| 盱眙县| 秦皇岛市| 若羌县| 商城县| 嘉峪关市| 大方县| 玉田县| 邹城市| 阿巴嘎旗| 凯里市| 毕节市| 友谊县| 鄂州市| 江达县| 新兴县| 乐山市| 施秉县| 岳西县| 漯河市| 交城县| 栾城县| 双牌县|