JavaScript下申明对象的几种方法小结


Posted in Javascript onOctober 02, 2008

1.var myObject = {} ;
2.function myObject()
{
....
}
3.var myObject = function(){} ;
对于后两种方法,我们还可以增加参数,这样就类似于一个带参数的构造器了.
例如:
function myObject(msg)
{
alert(msg) ;
}
var newObject = new myObject('Hello,World!') ;

var myObject = function(msg)
{
alert(msg + 'again') ;
}
var newTwoObject = new myObject('Hello,World!) ;

甚至我们可以使用字符串来声明函数,这使得我们的程序更加灵活
例如:
var myObject = new Function("msg","alert(msg)") ;
// Function可以有多个入口参数,最后一个参数作为方法体。
var newObject = new myObject('Hell,World!) ;

JavaScript中成员的声明
在JavaScript中,要声明一个对象的成员也非常简单,但是跟其它的高级程序仍然略有不同
例如:
var myObject = {
"FirstName" : "thtwin",
"LastName" : "thtwinj2ee",
"Age" : 22,
"showFullName" : function()
{
alert(this.FirstName + ' ' + this.LastName) ;
}

} ;
myObject.showFullName() ;

在JavaScript中另一个面向对象的特点是我们可以像高级编程语言一样使用.和[]引用成员.
例如:
var dateTime = {
now : new Date(),
show : function(){
alert(new Date()) ;
}
} ;
alert(dateTime.now) ;
等价于:
alert(dateTime.now) ;

dataTime.show() ;
等价于:
dateTime["show()"] ;

对于方法调用来说,在JavaScript中,所有的对象的基类是Object,基类通过prototype定义了很多的成员
和方法,例如:toString,toLocaleString等.
例如:
var obj = {"toString" : function(){return "This is an test!" ; }} ;
alert(obj) ;

运行时,当alert的时候toString()方法被调用了,事实上,当JavaScript需要将一个对象转换成字符
时就隐式调用了这个对象的toString()方法.
例如:
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var da = new Date(new Date()) ;

Date.prototype.toString = function(){alert('this is a test!') ;} ;
var dt = new Date() + 1 ;

JavaScript中call方法的使用:
关于call的解释:
call 方法可以用来代替另一个对象调用一个方法。
call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

例如:
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world!", show:abc};
var obj2 = { member1:"Hello world again!", show:abc};

obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);

修改后的另一个版本:
member1 = 'test';
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world", show:abc};
var obj2 = { member1:"Hello world again", show:abc};

obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);

abc(); // 此时abc中的this指向了当前上下文
每个函数都有call方法,上面的过程中我们看到用另一个对象代替调用显示方法,
并注意到this在对象上下文中的改变。

Javascript 相关文章推荐
Web开发之JavaScript
Mar 29 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
JS文本获得焦点清除文本文字的示例代码
Jan 13 Javascript
JQuery球队选择实例
May 18 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
js css3实现图片拖拽效果
Mar 04 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
js简单实现自动生成表格功能示例
Jun 02 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
Sep 10 Javascript
初学JavaScript第二章
Sep 30 #Javascript
select组合框option的捕捉实例代码
Sep 30 #Javascript
javascript优先加载笔记代码
Sep 30 #Javascript
javascript显示隐藏层比较不错的方法分析
Sep 30 #Javascript
javascript不同页面传值的改进版
Sep 30 #Javascript
简明json介绍
Sep 28 #Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 #Javascript
You might like
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP如何使用Memcached
2016/04/05 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
express express-session的使用小结
2018/12/12 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
详解Python中的分支和循环结构
2020/02/11 Python
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
幼儿园教师考核制度
2014/02/01 职场文书
2014年信用社工作总结
2014/11/25 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
Django路由层如何获取正确的url
2021/07/15 Python
全新239军机修复记
2022/04/05 无线电
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang