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 相关文章推荐
jQuery弹出层插件简化版代码下载
Oct 16 Javascript
javascript Object与Function使用
Jan 11 Javascript
js三种排序算法分享
Aug 16 Javascript
当前流行的JavaScript代码风格指南
Sep 10 Javascript
js 左右悬浮对联广告代码示例
Dec 12 Javascript
Bootstrap前端开发案例一
Jun 17 Javascript
面包屑导航详解
Dec 07 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
非常漂亮的js烟花效果
Mar 10 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的一个基础知识 表单提交
2011/07/04 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
js实现点击添加一个input节点
2014/12/05 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python reques接口测试框架实现代码
2020/07/28 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
英国现代绅士品牌:Hackett
2017/12/17 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
党员思想汇报范文
2013/12/30 职场文书
考试违纪检讨书
2014/02/02 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
市场总监岗位职责
2015/02/11 职场文书
大学生党员个人总结
2015/02/13 职场文书
JavaScript实现音乐播放器
2022/08/14 Javascript