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自带函数备忘 数组
Dec 29 Javascript
漂亮的widgets,支持换肤和后期开发新皮肤
Apr 23 Javascript
JS简单的轮播的图片滚动实例
Jun 17 Javascript
javascript+html5实现仿flash滚动播放图片的方法
Apr 27 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
JavaScript实现前端实时搜索功能
Mar 26 Javascript
JavaScript事件方法(实例讲解)
Jun 27 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
vue底部加载更多的实例代码
Jun 29 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 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 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
JSON相关知识汇总
2015/07/03 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python显示生日是星期几的方法
2015/05/27 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python 内置函数complex详解
2016/10/23 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Python 处理文件的几种方式
2019/08/23 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
python实现图像拼接功能
2020/03/23 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
农村婚礼证婚词
2014/01/10 职场文书
应届生求职信范文
2014/06/30 职场文书
学校消防安全责任书
2014/07/23 职场文书
任命书怎么写
2015/03/02 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
Python time库的时间时钟处理
2021/05/02 Python