js面向对象基础
2010-10-27 21:20
435 查看
程序1. 创建简单对象并设置其属性的两个例子
代码 1 <script>
2 //创建一个新的接受properties对象的对象
3 function User( properties ) {
4 //遍历对象属性,确保它作用域正确(如前所述)
5 for ( var i in properties ) { (function(which){ var p=i
6 //为属性创建获取器
7 which[ "get" + i ] = function() {
8 return properties[p];
9 };
//为属性创建设置器
which[ "set" + i ] = function(val) {
properties[p] = val;
};
})(this); }
}
//创建一个新user 对象实例,传入一个包含属性的对象作为种子
var user = new User({
name: "Bob",
age: 44
});
//请注意name属性并不存在,因为它在properties 对象中,是私有的
alert( user.name == null );
//然而,我们能够使用用动态生成的方法getname 来访问它
alert( user.getname() == "Bob" );
//最后,我们能看到,通过新生成的动态方法设置和获取age 都是可以的
user.setage( 22 );
alert( user.getage() == 22 );
</script>
静态方法
静态方法背后的前提其实跟其它任何方法是一样的。然而,最主要的不同在于,这些方法作为对象的静态属性而存在。作为属性,它们在该对象的实例上下文中不可访问;它们只有在与主对象本身相同的上下文是可用的。这些与传统的类继承的相似点,使得他们有点像是静态的类方法。
//附加在User对象上的一个静态方法
User.cloneUser = function( user ) {
//创建并返回一个新的User对象
return new User(
//该对象是其它user对象的克隆
user.getName(),
user.getAge()
);
};
代码 1 <script>
2 //创建一个新的接受properties对象的对象
3 function User( properties ) {
4 //遍历对象属性,确保它作用域正确(如前所述)
5 for ( var i in properties ) { (function(which){ var p=i
6 //为属性创建获取器
7 which[ "get" + i ] = function() {
8 return properties[p];
9 };
//为属性创建设置器
which[ "set" + i ] = function(val) {
properties[p] = val;
};
})(this); }
}
//创建一个新user 对象实例,传入一个包含属性的对象作为种子
var user = new User({
name: "Bob",
age: 44
});
//请注意name属性并不存在,因为它在properties 对象中,是私有的
alert( user.name == null );
//然而,我们能够使用用动态生成的方法getname 来访问它
alert( user.getname() == "Bob" );
//最后,我们能看到,通过新生成的动态方法设置和获取age 都是可以的
user.setage( 22 );
alert( user.getage() == 22 );
</script>
静态方法
静态方法背后的前提其实跟其它任何方法是一样的。然而,最主要的不同在于,这些方法作为对象的静态属性而存在。作为属性,它们在该对象的实例上下文中不可访问;它们只有在与主对象本身相同的上下文是可用的。这些与传统的类继承的相似点,使得他们有点像是静态的类方法。
//附加在User对象上的一个静态方法
User.cloneUser = function( user ) {
//创建并返回一个新的User对象
return new User(
//该对象是其它user对象的克隆
user.getName(),
user.getAge()
);
};
相关文章推荐
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- js面向对象基础(zz)
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- js面向对象基础(进阶)
- JS面向对象基础2
- JS面向对象基础
- JS面向对象基础
- 面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
- JS——面向对象基础
- JS面向对象基础
- js面向对象学习笔记之七(函数 与 基础控制结构)
- JS面向对象基础
- js面向对象基础
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- js-面向对象基础
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- JS面向对象基础篇(封装 继承 多态)
- Js_面向对象基础