JavaScript 弱类型

我们说JavaScript 是一种弱类型的语言,一方面体现在JavaScript 的变量、参数和返回值可以是任意类型,另一方面也体现在,JavaScript 可以对对象任意添加属性和方法,这样无形中就淡化了“类型”的概念。

对象的三种基本构造法
//第一种构造法:new Object
var a = new Object();
a.x = 1, a.y = 2;
//第二种构造法:对象直接量
var b = {x : 1, y : 2};
//第三种构造法:定义类型
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。

第二种类型是动态的公有类型,它的特点是外界可以访问,而且每个对象实例持有一个副本,它们之间不会相互影响。

第三种类型是静态的公有类型,或者通常叫做原型属性,它的特点是每个对象实例共享唯一副本,对它的改写会相互影响。

第四种类型是类属性,它的特点是作为类型的属性而不是对象实例的属性,在没有构造对象时也能够访问.

 私有属性(不能被该类的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(); //在公有成员中调用私有方法
}
}
var obj1=new class1();
obj1.method1(); //调用公有方法method1
obj1.method2(); //调用公有方法method2

这些局部变量(私有成员),被所有在构造函数中定义的公有方法所共享,而且仅被在构造函数中定义的公有方法所共享。

这意味着,在prototype中定义的类成员将不能访问在构造体中定义的局部变量(私有成员)。

静态属性

function class1(){
     //构造函数
}
//静态属性
class1.staticProperty=”sample”;
//静态方法
class1.staticMethod=function(){
alert(class1.staticProperty);
}
//调用静态方法
class1.staticMethod();

 

你可能感兴趣的:(javascript)