javascript
JavaScript 弱类型
我們說JavaScript 是一種弱類型的語言,一方面體現(xiàn)在JavaScript 的變量、參數(shù)和返回值可以是任意類型,另一方面也體現(xiàn)在,JavaScript 可以對對象任意添加屬性和方法,這樣無形中就淡化了“類型”的概念。
對象的三種基本構(gòu)造法
//第一種構(gòu)造法:new Object
var a = new Object();
a.x = 1, a.y = 2;
//第二種構(gòu)造法:對象直接量
var b = {x : 1, y : 2};
//第三種構(gòu)造法:定義類型
function Point(x, y)
{
this.x = x;
this.y = y;
}
var p = new Point(1,2);
//var user=new Object();
1.添加屬性,方法
user.name="hongda";
user.alert=function(){alert(this.name);}
2.修改屬性,方法
user.name="hongdada";
user.alert=function(){alert("my name is "+this.name);}
3.刪除屬性,方法
user.name=undefined;
user.alert=undefined;
屬性和方法的類型
JavaScript 里,對象的屬性和方法支持4 種不同的類型,
第一種類型就是前面所說的私有類型,它的特點是對外界完全不具備訪問性,要訪問它們,只有通過特定的getter 和setter。
第二種類型是動態(tài)的公有類型,它的特點是外界可以訪問,而且每個對象實例持有一個副本,它們之間不會相互影響。
第三種類型是靜態(tài)的公有類型,或者通常叫做原型屬性,它的特點是每個對象實例共享唯一副本,對它的改寫會相互影響。
第四種類型是類屬性,它的特點是作為類型的屬性而不是對象實例的屬性,在沒有構(gòu)造對象時也能夠訪問.
<!-- function dwn(s) { document.write(s + "<br/>"); } function myClass() { var p = 100; //private property; 私有屬性 this.x = 10; //dynamic public property 動態(tài)公有屬性 } myClass.prototype.y = 20; //static public property or prototype property 原型屬性 myClass.z = 30; //static property //靜態(tài)屬性 var a = new myClass(); dwn(a.p); //undefined 私有屬性對象無法訪問到 dwn(a.x); //10 公有屬性 dwn(a.y); //20 公有屬性 a.x = 20; a.z = 40; dwn(a.x); //20 dwn(a.y); //40 //動態(tài)公有屬性y 覆蓋了原型屬性y delete(a.x); delete(a.y); dwn(a.x); //undefined 動態(tài)公有屬性x 被刪除后不存在 dwn(a.y); //20 動態(tài)公有屬性y 被刪除后還原為原型屬性y dwn(a.z); //undefined 類屬性無法通過對象訪問 dwn(myClass.z); //30 類屬性應(yīng)該通過類訪問 -->?私有屬性(不能被該類的prototype訪問)
function class1(){ var pp=" this is a private property"; //私有屬性成員pp function pm(){ //私有方法成員pm,顯示pp的值 alert(pp); } this.method1=function(){ //在公有成員中改變私有屬性的值 pp="pp has been changed"; } this.method2=function(){ pm(); //在公有成員中調(diào)用私有方法 } } var obj1=new class1(); obj1.method1(); //調(diào)用公有方法method1 obj1.method2(); //調(diào)用公有方法method2這些局部變量(私有成員),被所有在構(gòu)造函數(shù)中定義的公有方法所共享,而且僅被在構(gòu)造函數(shù)中定義的公有方法所共享。
這意味著,在prototype中定義的類成員將不能訪問在構(gòu)造體中定義的局部變量(私有成員)。
靜態(tài)屬性
function class1(){//構(gòu)造函數(shù) } //靜態(tài)屬性 class1.staticProperty=”sample”; //靜態(tài)方法 class1.staticMethod=function(){ alert(class1.staticProperty); } //調(diào)用靜態(tài)方法 class1.staticMethod();?
總結(jié)
以上是生活随笔為你收集整理的JavaScript 弱类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [题解]CQOI2012 T2 组装 a
- 下一篇: gradle idea java ssm