无梦家园

无梦家园
posts - 21, comments - 151, trackbacks - 8, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

javascript索引器简析

Posted on 2007-06-20 11:38 沧桑雨迢迢 阅读(281) 评论(2)  编辑 收藏 网摘 所属分类: JavascriptAsp.net Ajax
      在面向对象语言的编程JAVA和C#中,都有对象"索引器"的概念.如:
C#实现:
public class MyClass{
    
private string _name;
    
//索引器
     public string Name{
        
getreturn this._name;}
        
setthis._name = value; }
    }

}
JAVA实现:
public class MyClass {
    
private String _name;
    
public String getName(){
        
return this._name;
    }

    
public void setName(String value){
        
this._name = value;
    }

}

      在javascript中,实现索引器的方法和java差不多,如下:
var MyClass = function(){    
}

MyClass.prototype 
= {
    _name: 
null,
    get_name: 
function(){
        
return this._name;
    }
,
    set_name: 
function(value){
        
this._name = value;
    }

}

      这种javascript索引器的做法,就是MS AJAX的做法.
      当我们需要访问某一对象的属性时,可以由一个专门的"属性访问方法"来统一执行,如下:
<script type="text/javascript">
var MyClass = function(){
}

MyClass.prototype 
= {
    _name: 
null,
    get_name: 
function(){
        
return this._name;
    }
,
    set_name: 
function(value){
        
this._name = value;
    }

}


function setProperties(component, properties){
    
for (var name in properties) {
        
var val = properties[name];
        
var setter = component["set_" + name];
        
if (typeof(setter) === 'function') {
            setter.apply(component, [val]);            
        }
       
    }
    
}


var m = new MyClass();

setProperties(m,
{name:"fanrong"});
alert(m.get_name());
</script>

      

Feedback

#1楼    回复  引用  查看    

2007-06-20 14:41 by 晓木      
上面那个C#实现的习惯上应该叫属性(当然在CLR via C#里称它为无参索引器),索引器好像要有[].....

#2楼    回复  引用  查看    

2007-06-20 14:43 by 晓木      
不好意思,记错了.....

是分有参属性和无无参属性......... 有参的为索引器...

对不起哦......

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: