问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助,关于js面向对象成员方法的

发布网友 发布时间:2022-04-28 13:13

我来回答

1个回答

热心网友 时间:2022-04-07 06:29

JavaScript中对象的创建有以下几种方式:
(1)使用内置对象
(2)使用JSON符号
(3)自定义对象构造

一、使用内置对象

JavaScript可用的内置对象可分为两种:
1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;
2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。

我们所说的使用内置对象,是指通过JavaScript语言原生对象的构造方法,实例化出一个新的对象。如:

复制代码 代码如下:

var str = new String("实例初始化String");
var str1 = "直接赋值的String";
var func = new Function("x","alert(x)");//示例初始化func
var o = new Object();//示例初始化一个Object

二、使用JSON符号

(i)何谓JSON ?
JSON (JavaScript Object
Notation)即JavaScript对象命名,是一种轻量级的数据交换格式,易于阅读和编写,同时也易于及其解析和生成。它基于
《JavaScript Programming Language, Standard ECMA-262 3rd Edition -
December 1999》的一个子集。JSON是完全独立于语言的文本格式,因此成为数据交换的理想格式。

JSON作为
JavaScript的一个自己,同时ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、
ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的语言都提供支持,使得JSON成为Ajax开发的
首选方案。

JSON有两种构建方式,一种是采用简单的逗键/值对地的集合,在不同的语言中被理解为对象、记录、结构、字典、哈希表、有键列表,或者关联数组等,另一种采用有序的值列表,大部分语言把它理解为数组。

常用的创建方式是第一种,即采用逗键/值对地集合的形式。在这种形式下,一个对象以逗{地(左括号)开始,逗}地(右括号)结束。每个逗名称地后跟一个逗:地(冒号),逗
‘键/值' 对地之间使用逗,地(逗号)分隔。

JSON具有以下特点:(1)简单格式化的数据交换;(2)易于人们的读写习惯;(3)易于机器的分析和运行。
在JavaScript中,JSON被理解为对象。通过字符串形式的JSON,数据可以很方便地解析成JavaScript独享,并进行数据的读取传递。通过JSON,在一定程度上客服了JavaScript对象无法作为参数系列化传递的问题。

1,简单的JSON

{name:"刘德华",age:"25",sex:"男"}

2,JSON值的类型

JSON的值可以是简单的数据类型,例如数字、浮点、字符等,也可以是数组及对象。例如以数组作为member键值的JSON:

{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]}

{
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

3,在JavaScript中使用JSON

JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或者工具包,JavaScript默认将JSON当做一个对象处理。

将对象传递给一个变量,例如:

复制代码 代码如下:

var somebooks = {
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

JSON的每个逗键地相当于对象的属性,例如访问book中的第一个条目,在JavaScript中,就可以简单地使用逗somebooks.book[0].name地来获取逗三国演义地这个值。

我们不但可以将一个JSON字符串转化为对象,反过来将一个对象逗编译地为一个JSON字符串,以方便JavaScript中的对象的传输。例如:

复制代码 代码如下:

var Animals = new Object();
Animals.name = "dog";
Animals.sex = "Male";
Animals.age = "2";

Animals对象无法被序列化传输,将Animals对象转化为JSON字符串,也就是逗{name:"dog",sex:"Male",age:"2"}地。这样,把该JSON字符串作为HTTP请求的一个参数传递,从而达到序列化传输Animals对象的目的。

(ii)JSON通过字符串形式来表达JavaScript的对象。如:

复制代码 代码如下:

var myObject = {nickname:"my girlfried",name:"big
pig"};

JSON
实际上充当了一种在JavaScript对象和字符串之间实现相互转换的协议。由于JSON的逗外表地可以看成但村的字符串,因此JSON在
JavaScript的对象传输方面可以起到一定的作用。例如把对象strObject转换成字符串后进行传输,在达到目的地后通过eval方法将其还原
成对象:

复制代码 代码如下:

function test (o)
{
alert (o.name)
}
var strObject = '{nickname:"my girlfriend",name:"big pig"}';
test (eval_r("(" + strObject + ")"));

三、自定义对象构造

创建高级对象构造有两种方式:使用逗this地关键字构造、使用原型prototype构造。如:

复制代码 代码如下:

//使用this关键字定义构造的上下文属性
function Girl()
{
this.name = "big pig";
this.age = 20;
this.standing;
this.bust;
this.waist;
this.hip;
}

//使用prototype
function Girl(){}
Girl.prototype.name = "big pig";
Girl.prototype.age = 20;
Girl.prototype.standing;
Girl.prototype.bust;
Girl.prototype.waist;
Girl.prototype.hip;
alert(new Girl().name);

上例中的两种定义在本质上没有区别,都是定义逗Girl地对象的属性信息。逗this地与逗prototype地的区别主要在于属性访问的顺序。如:

复制代码 代码如下:

function Test()
{
this.text = function()
{
alert("defined by this");
}
}
Test.prototype.test = function()
{
alert("defined by prototype");
}
var _o = new Test();
_o.test();//输出逗defined by this地

当访问对象的属性或者方法是,将按照搜索原型链prototype
chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。

逗this地
与逗prototype地定义的另一个不同点是属性的占用空间不同。使用逗this地关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法
所需的空间,而使用逗prototype地定义,由于逗prototype地实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比
逗this地节约资源。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招商银行的美元天添金怎么样? 天添美蒸馒头为什么开裂呢 上海食堂送菜 邮政跨地区取款手续费多? 谁能告诉我邮政储蓄卡跨省取钱要不要收费啊? 自贡市龙盛世纪仿真模型制造有限公司公司简介 学PS真的很难吗 红烧萝卜牛筋 微信怎么转发公众号部分内容 转发公众号部分内容方法 微信公众号内的视频如何下载?一个F12搞定 花甲粉(家庭版)的做法步骤图,怎么做好吃 谁知美甲培训师岗位职责怎么写 锡纸花甲粉制作需要几步? 开美甲美容店有哪三个关键点? 请问美甲店的工作时间怎么安排比较好 花甲粉制作 开个美甲店,都需要做什么前期准备。我现在是零基础呢 网页制作中CSS设置里background和backgroun-image有什么区别? 棋牌店长如何和员工培训 如何看待美甲行业及自己的未来规划 介绍文具袋的说明文,要600字 怎样介绍自己的铅笔袋? 普通的铅笔袋要多少元 怎样用Outlook配置QQ邮箱? 铅笔是怎么做成的呢? 铅笔袋怎么个环保法铅笔袋怎么个环保法 铅笔袋的历史 1世界上第一个铅笔袋是谁发明的2铅笔袋的历史? 自己怎么在家做文具袋 文具盒是用什么做的? 店长如何管理培训内部员工 javascript中如何动态的获取对象中的成员变量。? 网上买的手机送我的电信卡我想激活但是不知道手机号码怎么办? 美甲店上班55分成,我一个人上班时间怎么安排,老板说是早上10点到晚上10点我感觉时间太长怎么安排 JavaScript面向对象编程 怎么安排美甲师的上班时间 电信卡不知道号码怎么办 如何理解并学习javascript中的面向对象 疫情过后爆发的20个行业 特别喜欢吃花甲粉,这个可以自己在家制作吗? 如何评价《外科风云》? 如何通过javascript对象中的成员变量迭代 javascript 内部对象访问外部对象成员 关于javascript对象属性调用的问题。 Javascript 面向对象的Class, 怎么写最好. javascript 中对象名称如何使用变量 JavaScript 的面向对象的开发能否实现多态? javascript面向对象编程问题? javascript 变量作为js对象属性使用? background有哪些属性