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 相关文章推荐
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
如何为vue的项目添加单元测试
Dec 19 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
Python语言快速上手学习方法
2018/12/14 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
财务会计毕业生自荐信
2013/11/02 职场文书
空气的环保标语
2014/06/12 职场文书
中国梦团日活动总结
2014/07/07 职场文书
政工例会汇报材料
2014/08/26 职场文书
爱心募捐感谢信
2015/01/22 职场文书
单位实习介绍信
2015/05/05 职场文书
多人股份制合作协议书
2016/03/19 职场文书