㈠ javaScript中什麼是prototype原型對象它有和作用
在JavaScript中,prototype對象是實現面向對象的一個重要機制。每個函數就是一個對象(Function),專函數對象都有一個子對象prototype對象,屬類是以函數的形式來定義的。prototype表示該函數的原型,也表示一個類的成員的集合。在通過new創建一個類的實例對象的時候,prototype對象的成員都成為實例化對象的成員。
1、該對象被類所引用,只有函數對象才可引用;
2、在new實例化後,其成員被實例化,實例對象方可調用。
同時,函數是一個對象,函數對象若直接聲明成員,不用被實例化即可調用。
㈡ js構造函數中如何調用prototype內方法
<!DOCTYPEhtml>
<html>
<head>
</head>
<body>
<scripttype="text/javascript">
varPerson=function(){
this.name="csz";
Person.prototype.say();
}
Person.prototype.say=function(){
alert("hello");
}
Person();
</script>
</body>
</html>
直接調用就行了啊,調用Person就直接調用了它原型專上的屬say方法了
㈢ javascript原型,原型鏈 有什麼特點
javascript原型,原型鏈特點:原型鏈實現了繼承。
JS中每個函數都存在有一個原型對象屬性prototype。並且所有函數的默認原型都是Object的實例。每個繼承父函數的子函數的對象都包含一個內部屬性proto。該屬性包含一個指針,指向父函數的prototype。若父函數的原型對象的_proto_屬性為再上一層函數。在此過程中就形成了原型鏈。
原型鏈的作用是用來實現繼承,比如我們新建一個數組,數組的方法就是從數組的原型上繼承而來的。
var arr = [];
arr.map === Array.prototype.map //arr.map
是從arr.__proto__上繼承下來的,arr.__proto__也就是Array.prototype。
(3)javascriptprototype擴展閱讀:
1.JS中每個函數都存在有一個原型對象屬性prototype。並且所有函數的默認原型都是Object的實例。
2.每個繼承父函數的子函數的對象都包含一個內部屬性_proto_。該屬性包含一個指針,指向父函數的prototype。若父函數的原型對象的_proto_屬性為再上一層函數。在此過程中就形成了原型鏈。
3.原型鏈實現了繼承。原型鏈存在兩個問題:a 包含引用類型值的原型屬性會被所有實例共享。b 在創建子類型時,無法向超類型的構造函數中傳遞參數。
參考資料:網路-javascript
㈣ JavaScript裡面的prototype是什麼意思怎麼用能舉個例子嗎
翻譯一下是原型的意思~也就是說是JS對象的原型,一般用來擴展原型的時候用~或者版用到原型鏈式的權繼承上去~舉個例子:
聲明一個對象var abc=function(){
this.name="小明";
}
abc現在是一個對象(函數也是對象的一種),然後我們擴展一下這個對象,給它一個方法:
abc.prototype.say=function(){
alert(this.name);
}
這樣就擴展了原來的函數對象了~是用的時候直接var a=new abc();
a.say();就會彈出小明來了。這么做的好處是不會額外產生內存,所有實例化後的對象都會從原型上繼承這個方法。
至於原型鏈繼承的話你可以去搜一下我就不舉例子了~不懂的話可以再問我~
㈤ javascript一個函數實例有prototype屬性嗎
構造函數是有protptype屬性的,然後通過這個構造函數構造出的對象實例是有一個__proto__屬性來指向它的構造函數的protptype,他們是全等的關系,當然,那個構造函數也有一個proto對象來指向構造函數的構造函數的protptype,這就叫做JS的原型鏈
㈥ javascript中用prototype向原型中添加新屬性和方法時這條語句可以寫在函數里嗎,還是說只能寫在函數外
最好寫在函數外,寫在函數里也是可以的,需要添加內判斷,如:容
var Example=function(){
if(!Example.prototype.hi){
Example.prototype.hi=function(){
alert('hello');
}
}
}
new Example().hi();