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代码[多浏览器兼容]
Jun 07 Javascript
js 跳出页面的frameset框架示例介绍
Dec 23 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
jQuery中[attribute^=value]选择器用法实例
Dec 31 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
ReactNative页面跳转实例代码
Sep 27 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
Nov 20 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 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模块 Memcached功能多于Memcache
2011/06/14 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
js常用DOM方法详解
2017/02/04 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
Python实现二叉堆
2016/02/03 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
计算机本科生自荐信
2013/10/15 职场文书
电子商务专业求职信
2014/03/08 职场文书
中学生评语大全
2014/04/18 职场文书
指导教师评语
2014/04/26 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
MySQL数据管理操作示例讲解
2022/12/24 MySQL