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写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
Feb 09 Javascript
javascript中input中readonly和disabled区别介绍
Oct 23 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
Node.js中的流(Stream)介绍
Mar 30 Javascript
node.js基于mongodb的搜索分页示例
Jan 22 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 Javascript
vue移动端城市三级联动组件使用详解
Jul 26 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
Aug 28 Javascript
Vue如何清空对象
Mar 03 Vue.js
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
Apache设置虚拟WEB
2006/10/09 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
Python修改DBF文件指定列
2020/12/19 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
仓库主管的岗位职责
2013/12/04 职场文书
期终自我鉴定
2014/02/17 职场文书
大连星海广场导游词
2015/02/10 职场文书
企业安全生产检查制度
2015/08/06 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis