您的位置:知识库 » Web前端

JavaScript对象探讨

作者: 蓝色理想  来源: 蓝色理想  发布时间: 2009-12-14 09:59  阅读: 1951 次  推荐: 0   原文链接   [收藏]  

  由于JavaScript的灵活性,可以让每个人按照自己的习惯进行编写代码.有函数式的编程方式,也有现在用的较为广泛的对象字面量.由于面向对象的出现,JavaScript刚开始的函数编程也逐渐演化为类式编程方式.现在我对几种比较熟悉的编程习惯进行简单的说明:

  1.对象字面量:

var person = {
name:
null,
setName:
function(name){
this.name = name;
return this.name;
},
getName:
function(){
alert(
this.name);
}
}

  具有JavaScript特色的一种编程方式,以类为单位含有属性name,方法setName和getName.调用方法比较简便person.setname('R'),this由此至终均指向person,person的属性与方法均不私有,可以进行调用.

  2.prototype构造器调用模式

var Person = function(){
this.name = null;
}
Person.prototype.setName
= function(name){
this.name = name;
}
Person.prototype.getName
= function(){
alert(
this.name);
}


  也是很常见的编程方式,创建一个Person类,然后利用prototype对类进行扩展,添加方法.与对象字面量最大区别在于,调用该类的方法时,必须先new(跟Java调用类相似).var p = new Person();p.getName();如果不用new,而直接创建,会产生错误.而且这种错误将不会报错,难以发现.错误的产生原因来自于this 指向Person.prototypel,而Person并没有setName方法.

  3.利用匿名函数进行函数编程

(function(){
var name;

var setName = function(n){
name
= n;
}
window[
'person']['setName'] = setName;

var getName = function(){
alert(name);
}
window[
'person']['getName'] = getName;
})()

  类的出现,其中一个最大的好处就是降低了全局变量的出现,但是如果你依旧习惯于函数式编程,没关系,只要创建一个匿名函数,进行闭包,就可以再里面进行函数编程,也不需要担心全局变量的出现.如上所看到的var name;在匿名函数外部是无法调用的,然后利用外部的变量来调用内部的函数,或者是变量.可以借此创建私有变量和私有方法.

0
0
标签:JavaScript

Web前端热门文章

    Web前端最新文章

      最新新闻

        热门新闻