`
zhoucl
  • 浏览: 48931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript面向对象基础

阅读更多

      最近进入现场开发环节了,首先的工作是对JS脚本文件的整理和部分重写,因此算是扎扎实实看了一下javascript相关的知识,采用的库是jQuery,里面部分使用了面向对象的思想在里面,据说javascript的对象和闭包是其比较重要的两个方面,根据这几天的javascript方面的学习及实践,主要记录一下javascript中得面向对象的知识。

 

1、对象的创建方式

javascript的对象的创建,可以通过如下的三种方式来进行:

 

A、通过Object对象;

    直接通过Object对象来创建对象的示例代码如下:

var person = new Object();

person.id = '001';

person.name='zhangsan';

person.age = 24;

person.print = function() {

    return "my name is " + this.name + ", i am " + this.age + " years old! My id is "+ this.id;

}

person.print(); 

      这应该是最常用,最直观的一种创建对象方法,但是它的缺点太明显了,就是代码复用度很低。在真实项目代码中,应该使用复用度更好的方式来创建对象。

 

B、通过构造函数;

     通过构造函数创建javascript中的对象,相比于通过Object直接来创建对象,复用度相对来说有了一定得改进,具体的示例代码如下:

function Person() {
	var _this = this;
	var age = 18;
	var name = "zhangsan";
	
	this.setAge = function(_age) {
		age = _age;
	}
	
	this.getAge = function() {
		return age;
	}
	
	this.setName = function(_name) {
		name = _name;
	}
	
	this.getName = function() {
		return name;
	}
}

var person = new Person();
person.setAge(26);
person.setName('Aries');
$('#age').val(person.getAge());

     不过这里需要更加注意的是this这个关键字,function Person中得变量,如果通过var定义则为类似Java等语言中的私有变量,外部不能访问,反之则为公有变量,而Person中得方法,则如果用this.getAge类似的则为公有方法,反之则为私有方法,在实际使用中需要特别注意。

 

C、通过对象的初始化:

通过对象的初始化方法来创建对象也是一个常用的对象创建方法,具体示例代码如下所示:

var Comp = {
	id: '001',
	name: 'zhangsan',
	age: 24,
	print: function() {
		alert("My name is " + this.name + ", I am " + this.age + " years old! My id is " + this.id);
	}
}
			
Comp.print();
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics