javascript 学习笔记(八)javascript对象


Posted in Javascript onApril 12, 2011

1、javascript中的内置对象
javascript中除了本身的内置对象,如以下我们所熟悉的对象:
•Array
•Date
•Math
•String
•RegExp
•……
各个对象都有自己的属性及方法,比如我们经常使用属性及方法
属性:stringObject.length; arrayObject.length;……
方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr(); arrayObject.concat(); arrayObject.push(); arrayObject.join();……
2、如何自定义对象,及添加属性和方法
a. 通过关键字new创建

var newObject = new Object(); //创建一个新类 
newObject.name = "new object"; //添加一个name的属性 
newObject.say = function() { //添加say()方法 
alert(this.name); //output new object 
}

对于以上的创建方法,我们可以利用JSON(JavaScript Object Notation)的方法简写为如下代码:
var newObject = { 
name: "new object"; 
say: function () { 
alert(this.name); 
} 
};

我们利用JSON的数据格式创建一个更为复杂的对象
var company = { 
name: "tuanzz", 
product: "groupon", 
address: {province: "Hubei", city: "wuhan"}, 
person:[ 
{name: "zhangchen",age: "23"}, 
{name: "luomi", age: "23"}, 
], 
readme: function() { 
alert("My name is "+this.person[0].name+" and "+this.person[0].age+" years old"); 
} 
}; 
company.readme(); //output My name is zhangchen and 23 years old;

我们可以看到,用JSON的数据格式创建的对象,代码不仅看起来十分优雅。
JSON的形式就是用大括“{}”号包括起来的项目列表,每一个项目间并用逗号“,”分隔,而项目就是用冒号“:”分隔的属性名和属性值。这是典型的字典表示形式,也再次表明了 JavaScript里的对象就是字典结构。不管多么复杂的对象,都可以被一句JSON代码来创建并赋值。
b、通过构造函数来创建对象
function objectFun(name) { 
this.name = name; 
this.say = function() { 
alert(this.name); 
} 
} 
var newObject = new objectFun("zhangchen"); 
newObject.say(); //output zhangchen

首先新建一个objectFun()函数,其中定义了属性和方法,这里我们可以把objectFun看作一个类(在javascript中函数就是对象),然后通过new实例化出一个对象,newObject对象中同样也有了父类中属性和方法。
我们可以用以下代码来检测函数确实是对象:
//普通函数 
function say(s) { 
alert(s); 
} 
say("hi"); 
//给函数对象赋属性,函数就是对象 
say.test = "it can work?"; 
alert(say.test); //output it can work?

如何理解以上创建对象的方法?我们看下面的代码:
function objectFun(name) { 
this.name = name; 
this.say = function() { 
alert(this.name); 
} 
} 
var newObject = new Object(); //创建一个空对象 
objectFun.call(newObject, "zhangchen"); //将newObject作为this参数调用objectFun函数 
newObject.say("zhangchen");//output zhangchen

首先创建一个newObject对象,newObject作为this参数调用objectFun函数。讲了这么多,我们完全可以把objectFun作为构造函数来使用。
-------------------------------------------------------------------------------------------------------------------------------------------------
余下内容大家可参考李战写的悟透JavaScript
Javascript 相关文章推荐
Javascript的一种模块模式
Mar 22 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
js实现拖拽上传图片功能
Aug 01 Javascript
浅谈vue路径优化之resolve
Oct 13 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
JS实现的透明度渐变动画效果示例
Apr 28 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
jQuery的初始化与对象构建之浅析
Apr 12 #Javascript
避免回车键导致的页面无意义刷新的解决方法
Apr 12 #Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 #Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 #Javascript
window.dialogArguments 使用说明
Apr 11 #Javascript
30个最佳jQuery Lightbox效果插件分享
Apr 11 #Javascript
基于jquery的仿百度搜索框效果代码
Apr 11 #Javascript
You might like
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
微信小程序实现星级评分和展示
2018/07/05 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
python清理子进程机制剖析
2017/11/23 Python
用python处理MS Word的实例讲解
2018/05/08 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
药店主任岗位责任制
2014/02/10 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
税务会计岗位职责
2015/04/02 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书