JavaScript面向对象之类的创建

JavaScript对象的定义:

在js中函数极为对象,对象分为二种:对象字变量产生的对象连接到Object.prototype;函数对象连接到Function.prototype

方法当一个函数被保存为对象的一个属性时,我们称它为一个方法。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript中的类</title>
<script type="text/javascript">
//-------第一种:函数自变量
 // 创建Object类的实例,所有直接用花括号括起来的都属于Object类,这种创建的类不用实例化
//!!!不推荐使用
var obj = {
	property:'this is a property.',
	method:function(){
		return 'I am a method.'
	}
};
// 调用方法:
console.info('property:'+obj.property+'\nmethod:'+obj.method());

//---------------第二种:函数对象
// 自定义类:其实在JavaScript中一个函数就是一个类,调用的时候必须进行实例化  -->可以使用
// !每个实例化的类都会有三个属性,只是其中一个属性是方法而已
function User(name,age){	// 虽然对类名没有强制要求,但建议类名进行大写
	// 创建属性
	this.name = name ;
	this.age = age ;
	//创建方法
	this.getInfo = function(){
		// 获得实例的变量必须加上this
		return 'name-->'+this.name+'\nage-->'+this.age ;
	}
}
// 调用方法
// 实例化
var user  = new User() ;
console.info(user.getInfo());

//基于prototype进行创建    每个实例化的对象都公用统一的方法 -->强烈推荐使用
// 性能上和维护方面都是最好的
function Person(name,age){
	this.age = age ;
	this.name = name ;
}
Person.prototype.getInfo = function(){
	 return 'name-->'+this.name+'\nage-->'+this.age ;
};
// 调用方法
// 实例化
var person = new Person();
console.info(person.getInfo());

</script>
</head>

<body>
<button οnclick="javascript:alert('属性:'+obj.property+'\n方法:'+obj.method())" >第一:创建Object类的实例(不推荐)</button>
<button οnclick="javascript:alert(new User('tom',12).getInfo())" >第二:自定义类(可以使用)</button>
<button οnclick="javascript:alert(new Person('tom',12).getInfo())" >第三:基于原型prototype(推荐使用)</button>

</body>
</html>

JavaScript,面向对象开发,恐怕已成趋势,之后JQuery 2.0的版本后,也在使用 JavaScript面向对象的编程概念。 JavaScript,一直以来对我来说,是一种灵活而难以控制的语言,但是无法否认的是它真的很强大。但如果不能很规范的进行编码的话,后期的维护,简直就是个痛苦。像高级语言一样的去编写 JavaScript代码,这样才是明智的选择。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值