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 Sort 表格排序
Oct 31 Javascript
在html页面上拖放移动标签
Jan 08 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
JQuery遍历json数组的3种方法
Nov 08 Javascript
详解vue组件化开发-vuex状态管理库
Apr 10 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
Jun 14 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
ES6解构赋值的功能与用途实例分析
Oct 31 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
浅谈vue 组件中的setInterval方法和window的不同
Jul 30 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注入实例
2006/10/09 PHP
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
JS实现电商放大镜效果
2017/08/24 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python打开网页和暂停实例
2014/09/30 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
python list元素为tuple时的排序方法
2018/04/18 Python
python如何实现异步调用函数执行
2019/07/08 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
工程班组长岗位职责
2013/12/30 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
百年孤独读书笔记
2015/06/29 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL