<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<script type="text/javascript">
// javascript的面向对象的编程思想
//创建一个对象
var person = new Object();
//alert(person);//会弹出是object类型
//我们该如何为该对象添加属性呢?
//alert(person.length);//如果此时我们弹出它的长度属性的话,出现未定义
//但是假设我们开始就有一个字符串呢?
var str = new Object("hello,felayman");
//alert(str.length);//这里会弹出14,因为在创建对象的同时,赋予了它对象类型
//那么,我们该如何给我们为初始化的person添加属性呢?
person.name = "felayman";
person.age = 22;
//这样我们就给person对象添加了两个属性
//alert("姓名:"+person.name+",年龄:"+person.age);
//既然是面向对象的思想,我们可以为对象添加属性,那么自然也可以为对象添加方法
//person.getname();//如果出现在这里,遭了,程序会报错
person.getname = function(){
alert("姓名:"+person.name+",年龄:"+person.age+",测试成了?");
}
//我们试试看,能不能调用该方法呢?
//person.getname();
/*那么假如我们上面这句话放在getname方法的定义之前会出现什么情况呢?
因此,上述的对象定义的方法就不好了,因为对象的属性和方法太分散了,那么
有么有一个比较好的方法呢?当然有,那就是JSON格式(尽管有人给他叫字面量)
*/
var user = {
name:"felayman",
age:22,
job:"student",
getAttr:function(){
alert("姓名:"+this.name+",年龄:"+this.age+",职业:"+this.job);
}
};
//这样我们就创建了一个对象的同时,并且为该对象添加了属性和方法,看,是不是跟java很象了
//这样的风格清晰明朗,封装性极强,因此,在编写面向对象的javascript脚本时,这样刚刚无疑是租好的
//我们测试一下
//alert(user);//测试user的类型,我是测试成功了
//user.getAttr();//我也测试成功了
//我们测试一下对对象属性的修改,此时我们并没有涉及到数据的作用域
user.name = "felay";
//user.getAttr();//测试成功
/*下面出现一个问题,我们该如何象java那样对对象的属性和方法,进行作用域设置呢
java对属性和方法的保护是通过private,protected,public来空值的,那么
javascript又是怎么进行的呢?下面我们将尝试这么做
*/
//假如我们想对某对象的一个属性来进行只读属性的设置,怎么做呢?如下
var obj = {};//创建一个对象
Object.defineProperty(obj,"name",{
writale:false,
value:"felay_man"
});
//上述代码就创建一个具有name属性的对象obj,但是,这个name属性是只读的
//alert(obj.name);//会弹出felay_man
//那么我们测试一下对name属性进行修改
obj.name = "hello";
//alert(obj.name);//依然是弹出felay_man
//假如我把上述的writable属性改为true呢?也许很多人觉得能够进行修改,可惜是不行的
//当然我们也可以想java那样使用setter和getter进行属性的获取
var book={
//这里的属性前面带上的'_',其含义就是该属性可以通过getter进行属性的获取
_version:1.8,
_author:"felayman"
};
Object.defineProperty(book,"version",{
get:function(){
return this._version;
},
set:function(version){
this._version = version;
}
});
//上述代码就对book对象设置了两个就可以使用setter和getter进行属性的获取和修改了
//alert(book._version);//这里依然能够获取的到
//因此上述的方法相当麻烦,而且和我们普通的JSON格式创建的对象没有什么区别,这样做只是
//增加规范而已,因此我们平时不建议这么写
</script>
<title>javascript面向对象编程</title>
</head>
<body>
</body>
</html>
分享到:
相关推荐
即用即查——JavaScript核心对象参考手册
《众妙之门——JavaScript与jQuery技术精粹》出自世界知名Web设计网站Smashing Magazine,其中的文章是来自全球顶级设计师的精华总结。全书共分为两大部分,第一部分阐述JavaScript的实战经验,共7章,内容涉及...
紧凑的、基于对象的脚本语言——JavaScript.pdf
03妙味课堂——javascript彩虹圈效果03妙味课堂——javascript彩虹圈效果
《javascript》——event对象与事件
单页Web应用——Javascript从前端到后端,你值得拥有,单页Web应用——Javascript从前端到后端
网页设计与制作教程第4章 网页特效——JavaScript.ppt网页设计与制作教程第4章 网页特效——JavaScript.ppt
网页模板——javascript 在线打字练习
fibjs——Javascript on Fiber
前端学习(五)——Javascript学习笔记(三)对象.xmind
fibjs——Javascript on Fiber.pdf
网页模板——javascript 图片放大效果
javascript对象创建方法总结,通过这些方法的总结,可以对对象有了更深一步的了解,也加深了对对象的巩固认识。
WebBrowser介绍——Javascript与C++互操作
网页模板——javascript 物理弹性漂浮广告
网页模板——javascript制作的图形验证码特效
网页模板——JavaScript模仿微信打飞机游戏
网页模板——javascript(DOM)图片切换效果
实用页面设计方法——JavaScript全套教学课件.ppt
美化你的网页(三)——Javascript应用实例.pdf