国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

JS原型對象操作實(shí)例分析

瀏覽:132日期:2024-05-04 17:22:44

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

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

function fn() {}let a = new fn();let b = new Function()console.log(typeof a); // object console.log(typeof b); // function

打開瀏覽器,輸入fn,會(huì)發(fā)現(xiàn)fn有一個(gè)prototype(原型)屬性,這個(gè)屬性是一個(gè)指針,指向原型對象,這個(gè)對象包括了特定類型所有共享的屬性和方法。換句話說,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的原型屬性上加了兩個(gè)屬性和一個(gè)方法,實(shí)例化后便可以訪問原型中的值。

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

JS原型對象操作實(shí)例分析

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

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 = 20console.log(b.a); // 20console.log(a.a); // 18

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

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

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

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

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 绥阳县| 海兴县| 临夏市| 阳朔县| 和硕县| 深泽县| 龙州县| 邓州市| 茶陵县| 江阴市| 丰城市| 阳城县| 白玉县| 深州市| 合江县| 新巴尔虎右旗| 南阳市| 阿克陶县| 长乐市| 华坪县| 安仁县| 滦平县| 鄂温| 利津县| 吉安县| 大方县| 靖江市| 萨嘎县| 交城县| 泰和县| 鄂尔多斯市| 城口县| 汕尾市| 玉田县| 丁青县| 浮山县| 阳高县| 临海市| 吴桥县| 科技| 永州市|