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 相关文章推荐
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
纯js三维数组实现三级联动效果
Feb 07 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
JavaScript创建对象的七种方式(推荐)
Jun 26 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
优化PHP程序的方法小结
2012/02/23 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
Javascript验证方法大全
2015/09/21 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
深入Python函数编程的一些特性
2015/04/13 Python
python编写弹球游戏的实现代码
2018/03/12 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python识别验证码的实现示例
2020/09/30 Python
企业指导教师评语
2014/04/28 职场文书
大学新闻系求职信
2014/06/03 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
教育教学工作反思
2016/02/24 职场文书