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
Oct 31 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
May 15 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
javascript中apply/call和bind的使用
Feb 15 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
vue使用axios上传文件(FormData)的方法
Apr 14 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 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的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
js对数字的格式化使用说明
2011/01/12 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python多线程实现同步的四种方式
2017/05/02 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python流程控制 while循环实现解析
2019/09/02 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
法国房车租赁网站:Yescapa
2019/08/26 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
企业安全生产目标责任书
2014/07/23 职场文书
求职自我评价范文100字
2014/09/23 职场文书
文明旅游倡议书
2015/04/28 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
Go语言并发编程 sync.Once
2021/10/16 Golang