<script type="text/javascript">
//创建一个新的Object对象,存放在obj变量中
var obj1 = new Object();
//设置属性
obj1.value = 5;
obj1.click = function(){
alert("Hello");
}//另一种方式定义一个对象,以键值(key/value)的方式定义属性
var obj2 = {
value : 5,
click : function(){
alert("Hello");
}
};
</script>
<script type="text/javascript">
//一个简单的函数,接受名称并将其放入当前上下文中
function User(name){
this.name = name;
}var me = new User("cssrain");//指定名称来创建该函数的一个新对象
alert( me.name );//"cssrain"
alert( me.constructor == User );//true//如果把User当作函数
User("peter");
alert( window.name );//因为它的this上下文对象未设定,所以默认是全局的window对象
</script>
3,公共方法
<script type="text/javascript">
//一个简单的函数,接受名称并将其放入当前上下文中
function User(name){
this.name = name;
}
//将一个新的函数添加到此对象的prototype对象中
User.prototype.getName = function(){
return this.name;
}var me = new User("cssrain");//指定名称来创建该函数的一个新对象
alert( me.getName() ); //"cssrain"
</script>
4,私有方法
5,特权方法<script type="text/javascript">
//一个简单的函数,接受名称并将其放入当前上下文中
function User(name){
this.name = name;
function disp(){
alert("User()函数 私有的");
}
//只能内部调用
disp();
}var me = new User("cssrain");//指定名称来创建该函数的一个新对象
//me.disp();//不能调用
//disp();//不能调用
</script>
<script type="text/javascript">
function User(name,age){
//私有变量
var year = (new Date()).getFullYear()-age;
//创建一个特权方法,能够访问year变量,同时属于公共可访问
this.getBornYear = function(){
return year;
}
}var me = new User("cssrain",22);//指定参数来创建该函数的一个新对象
alert( me.getBornYear() );//"1986"
</script>
本质上,特权方式是动态生成的。因为它们是在运行时才添加到对象中的,而不是在代码第一次编译时就已经生成。
这种动态生成代码的能力不可小视,能根据与你想那个时变量来生成代码是非常有用的。看下面动态生成方法的例子:
<script type="text/javascript">
function User( users ){
for(var i in users){//遍历所有的属性
(function(method){
var p = i;
method["get"+p]=function(){//创建此属性的一个读取函数
return users[p];
}
method["set"+p]=function(val){//创建此属性的一个设置函数
users[p] = val;
}
})(this);
}
}var me = new User({name : "cssrain", age : 22});//指定参数来创建该函数的一个新对象
alert( me.getname() );//"cssrain"
alert( me.getage() );//"22"me.setname("changeCssRain");
me.setage(23);
alert( me.getname() );//"changeCssRain"
alert( me.getage() );//"23"
</script>
6,静态方法
静态方法的实质跟一般函数没有什么不同,静态方法能保证对象的命名空间的整洁。
<script type="text/javascript">
function User(name,age){
this.name = name;
this.age = age;
}
//添加到一个User对象的静态方法
User.cloneUser = function(user){
//创建并返回一个新的User对象
return new User( user.name , user.age );
}var u = User.cloneUser({name:"cssrian",age:22});
alert(u.name);//"cssrain"
alert(u.age);//22
</script>