摘要:在中并沒有定義函數(shù)的圓形類型,所以原型可以時任何類型。原型時用于保護(hù)對象的共享屬性和方法的,原型的屬性和方法并不會影響函數(shù)本身的屬性和方法。構(gòu)造函數(shù)屬性名屬性值,方法名自由屬性和原型屬性自由屬性通過對象的引用添加的屬性。
原型
原型是聲明
在JavaScript中, 函數(shù)時一個包含屬性和方法的Function類型的對象。而原型(Prototype)就是Function類型對象的一個屬性。在函數(shù)定義是就包含了protopype屬性,它的出事值時一個空對像。在JavaScript中并沒有定義函數(shù)的圓形類型,所以原型可以時任何類型。 原型時用于保護(hù)對象的共享屬性和方法的,原型的屬性和方法并不會影響函數(shù)本身的屬性和方法。
function foo (a,b){
return a+b;
}
console.log (typeof foo.prototyoe);//boject
獲取原型
通過如下兩種方式可以獲取對象的原型,從而設(shè)置共享的屬性和方法:
通過構(gòu)造函數(shù)的prototype屬性
function person(){
console.log ("person instantiated");
}
console.log(person.prototype);
通過Object對象的getPrototypeOf(obj)方法。
function Person(){
console.log (person instantiated);
}
console.log(Object.getprototypeOf(person));
原型的屬性和方法
通過如下兩種方式可以設(shè)置原型的屬性和方法。
構(gòu)造函數(shù).Prototype.屬性名+屬性值;
構(gòu)造函數(shù).prototype.方法名=function(){}
直接為原型定義一個新對象。
構(gòu)造函數(shù).prototype={
屬性名:屬性值,
方法名:function(){}
}
自由屬性和原型屬性
自由屬性: 通過對象的引用添加的屬性。其他對象可能無此屬性:即使有,也是彼此獨立的屬性。
原型屬性:從原型屬性對象中繼承來的屬性,一旦原型屬性中屬性改變,所有繼承原型屬性對象屬性均改變。
function Emo(ename,salary){
this.ename=ename;
this.salary=salary;
}
Emp.prototype={city:北京市,dept:研發(fā)部}
var emp1 =new Emp("Mary",3800);
var emp2 =new Emp("tmp",3000);
檢測自由或原有屬性
使用hasOwnPrototype()方法檢測對象時否具有指定的自有屬性:
function Hero(){}
var hero = new Hero()
console.log(hero.hasOwnPrototype("name"));
使用in關(guān)鍵字檢測對象及其原型鏈中是否具有指定的屬性:
function Hero(){}
var hero=new Hero();
console.;log("name"in hero);
擴(kuò)展屬性或方法
通過原型看為指定構(gòu)造函數(shù)或?qū)ο髷U(kuò)展其屬性或方法,如下代碼實例:
function Hero (){}
Hero.protoptype={
name:"Mary",
salary:3800}
var hero =new Hero();
console.log (hero.name);//mary
重寫原型屬性
通過構(gòu)造函數(shù)或?qū)ο蟮淖杂蓪傩钥梢灾貙懺偷膶傩裕?如下代碼示例:
function Hero(){}
Hero.prototype={}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108355.html
摘要:兩日前,發(fā)了一篇吐槽,莫名的火了一把。關(guān)于的第一個,其實就是聲明一個常量,不允許變更。另外對象迭代這里出自,阮一峰大神寫的入門指南,對象篇。 兩日前,發(fā)了一篇吐槽,莫名的火了一把。經(jīng)過大家的建議與鼓勵,于是修改了簡歷,開始了重新投遞,2天后接到第一份面試邀請。 此文為個人面試經(jīng)歷,QA問答過程與總結(jié),不透露面試公司及面試人員,內(nèi)容真實,如果有面試過我的大佬看到博客,歡迎指出問題。 循序...
摘要:要用作原型的對象。函數(shù)對象可以創(chuàng)建普通對象,這個我們上面講過了回顧一下這是一個自定義構(gòu)造函數(shù)普通對象沒法創(chuàng)建函數(shù)對象,凡是通過創(chuàng)建的對象都是函數(shù)對象,其他都是普通對象通常通過創(chuàng)建,可以通過來判斷。 關(guān)于js的原型和原型鏈,有人覺得這是很頭疼的一塊知識點,其實不然,它很基礎(chǔ),不信,往下看要了解原型和原型鏈,我們得先從對象說起 創(chuàng)建對象 創(chuàng)建對象的三種方式: 對象直接量 通過對象直接量創(chuàng)建...
摘要:的面向?qū)ο笾饕藘蓧K創(chuàng)建對象繼承。構(gòu)造函數(shù)一般來說,我們可以這樣定義構(gòu)造函數(shù)構(gòu)造函數(shù)的函數(shù)名常大寫在這里,我們沒有顯示的創(chuàng)建對象,沒有語句,卻將屬性和方法賦值給了。 面向?qū)ο笫擒浖_發(fā)方法。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。面向?qū)ο笫且环N對現(xiàn)實世界理解和抽象的方法...
摘要:理解的函數(shù)基礎(chǔ)要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當(dāng)作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統(tǒng)的類繼承還要強(qiáng)大。中文指南基本操作指南二繼續(xù)熟悉的幾對方法,包括,,。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...
閱讀 1933·2021-11-24 09:39
閱讀 2650·2021-10-14 09:43
閱讀 3364·2021-10-08 10:10
閱讀 2372·2021-09-22 15:54
閱讀 2380·2019-08-29 17:20
閱讀 1601·2019-08-28 18:14
閱讀 2402·2019-08-26 13:28
閱讀 1146·2019-08-26 12:16