JavaScript 创建对象


Posted in Javascript onJuly 17, 2009

第一种:JSON方式/对象直接量
格式:
var 对象名 = {
变量1: 变量1的值,
变量1: 变量1的值,
……,
函数1: function() {
函数体
},
函数2: function() {
函数体
}//Note:最后的逗号要去除为了和IE兼容。
};
说明:
(1) 大括号内直接填写变量或者函数;
(2) 对象的内容与值以冒号分隔,成对出现;
(3) 包含的变量或者函数之间以逗号分隔;
(4) 函数需要写在function(){}的大括号之内。
例子:
var 对象名 = {
name: “Vicky”,
age: 26,
eat: function() {
alert(‘I wanna eat meat');
},
sleep: function() {
alert(‘I wanna sleep');
}
};
注释:类似的方式也叫做匿名类
匿名类举例:
{
index: '//',
reg: new RegExp('^//.*$'),
css: "comment"
}
上面的方式创建了类,只是没赋给一个变量而已。
第二种:function方式
格式:
function data() {
this.变量1=变量1的值;
this.变量2=变量2的值;
……;
this.函数1= function() {
函数体
};
this.函数2= function() {
函数体
};
}
说明:
(1) 其内的变量或者函数前必需写上this关键字;
(2) 对象的内容与值以等号分隔,成对出现;
(3) 包含的变量或者函数之间以分号分隔。
(4) 函数需要写在function(){}的大括号之内。
例子:
function data() {
this.name=“Vicky””;
this.age=26;
this.eat=function() {
alert(‘I wanna eat meat');
};
this.sleep=function() {
alert(‘I wanna sleep');
};
}
第三种:原型方式
格式:
var 对象名 = {};
对象名.prototype.变量1=变量1的值;
对象名.prototype.变量2=变量2的值;
……;
对象名.prototype.函数1= function() {
函数体
};
对象名.prototype.函数2= function() {
函数体
};
……;
说明:
(1) 初始对象体内可以不定义任何东西;
(2) 在要定义的变量前加“对象名.prototype.”的格式;
(3) 对象的内容与值以等号分隔,成对出现;
(4) 包含的变量或者函数之间以分号分隔,也可以省去分号。
(5) 函数需要写在function(){}的大括号之内。
例子:
var data = {};
data.prototype. name ="Vicky”;
data.prototype. age =20;
data.prototype. eat = function() {
alert(‘I wanna eat meat');
};
data.prototype. sleep= function() {
alert(‘I wanna sleep');
};
第四种:create方式
该方式利用了Prototype JavaScript组件库。
格式:
var 对象名 = Class.create();
Object.extend(对象名.prototype, {
变量1: 变量1的值,
变量1: 变量1的值,
……,
函数1: function() {
函数体
},
函数2: function() {
函数体
},
……
});
说明:
(1) 对象的创建使用了Prototype库中的Class.create()函数;
(2) 对象的内容使用Prototype库中的Object.extend()函数来扩展;
(3) 被扩展的对象在传入Object.extend函数时一定要带上prototype,
(4) 扩展内容被大括号包含,其内与JSON方式的定义格式完全相同。
例子:
var data = Class.create();
Object.extend(dta.prototype, {
name: "Vicky",
age: 20,
eat: function() {
alert(‘I wanna eat meat');
},
sleep: function() {
alert(‘I wanna sleep');
}
});
其实,JS对象的定义还有其它的方式,你也可以用上面4种进行组合定义,这显出了JS作为动态语言的自由性。
JS对象的创建正规方法如下:
var d1 = new Data();
JS对象变量的引用方式有两种:
(1) 点号方式引用,如,data.name。
(2) 数组方式引用,如,data[‘name']。

Javascript 相关文章推荐
取得一定长度的内容,处理中文
Dec 20 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
Dec 25 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
Apr 01 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
详解ES6数组方法find()、findIndex()的总结
May 12 Javascript
prototype 学习笔记整理
Jul 17 #Javascript
表单元素事件 (Form Element Events)
Jul 17 #Javascript
优化 JavaScript 代码的方法小结
Jul 16 #Javascript
Javascript 事件流和事件绑定
Jul 16 #Javascript
js 对象是否存在判断
Jul 15 #Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 #Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 #Javascript
You might like
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
Python简单实现enum功能的方法
2016/04/25 Python
Python线程创建和终止实例代码
2018/01/20 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python当中的array数组对象实例详解
2019/06/12 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
饭店工作计划书
2014/01/10 职场文书
校园之星获奖感言
2014/01/29 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
安全月宣传标语
2014/10/07 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
Python 匹配文本并在其上一行追加文本
2022/05/11 Python
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python