问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

js面向对象的几种方式

发布网友 发布时间:2022-04-20 02:58

我来回答

1个回答

热心网友 时间:2022-04-03 13:53

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”节约资源。
js面向对象的几种方式

JavaScript中对象的创建有以下几种方式:(1)使用内置对象 (2)使用JSON符号 (3)自定义对象构造 一、使用内置对象 JavaScript可用的内置对象可分为两种:1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body...

JS面向对象三大特征:封装、继承、多态

4.寄生式继承 寄生式继承是与原型式继承紧密相关的一种思路,它创造一个仅用于封装继承过程的函数,在函数内部以某种方式增强对象,最后再返回对象。5.寄生组合式继承 不同对象与同一操作产生不同结果。把“想做什么”跟“谁去做”分开,把过程化的条件语句转换为对象的多态性,从而消除条件分支语句。

js面向对象是什么意思

js面向对象是一种编程范式,它的思想是通过对现实世界的抽象和建模,将代码组织成对象,再通过对象之间的交互实现更复杂的功能。面向对象的编程是一种比较高效、易维护、易扩展的方式,它可以让代码更加通用、模块化,同时也能够提高代码的可重用性。在js中,面向对象的编程方式主要通过构造函数、原型、实例...

JS 面向对象

JS里有大概7种类型(加上Symbol),数字、字符串、null、undefined、布尔、Symbol、对象。除对象以外的其他类型属于原始类型,就是说它们比较单纯,包含的东西比较少,基本上就是字面量所表示的那些(像C语言中的一些类型,就是占那么多空间,没有其他的东西)。object基本上是一些键值对的集合,属于引用...

js面向对象 不懂为什么要init进行初始化

如果要创建一个Test的实例,并调用init方法,那最普通的做法是:var test = new Test();test.init();这样做也没错,我们的想法是它创建的时候其实就是在做初始化的工作,那干脆就简化它,在new的时候就让他直接自动调用init方法,省去再次手动调用,所以一般都会写成如下形式:function Test(){ this...

js面向对象var a=this;对a操作会不会影响当前对象?(a是指向this还是复制...

会。a是指向this。一个变量=对象或数组,指的都是引用。若想要复制对象或数组,必须一个一个属性复制:例如:var obj={...};var b={};for (var a in obj){ b[a]=obj[a];} console.log(b); // b复制了对象obj。所以,无论你如何操作obj都不会影响b。可若是你直接这样:var b=ob...

阮一峰大佬的JS(初识)面向对象(读书笔记)

JavaScript每个创建的对象都会设置一个原型,指向它的原型对象。面向对象核心规则包含以下三个要点:1.所有函数对象都有一个原型对象(prototype)。2.所有对象上都有一个隐式原型(__proto__),指向创建该对象的构造函数的原型。3.所有原型上都有一个constructr,指向该原型所在的构造函数本身。构造函数...

js面向对象的三个基本特征(js面向对象编程的三大特性)

js面向对象的几种方式JS里有大概7种类型(加上Symbol),数字、字符串、null、undefined、布尔、Symbol、对象。js编程中创建对象的几种方式,如原始方法、工厂方法等创建对象。JavaScript中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。对象的属性:反映该对象某些特定的...

js问题:js的prototype怎么理解?

传统的面向对象采用“类继承”的方式,例如Java、C#、C++、PHP等。而Javascript采用了另外一种更为简便的继承方式,“原型继承”的方式。原型是指一个对象模板。当要创建某一类型的对象时,我们创建一个较小的对象,并让这个较小的对象指向这个原型对象。这样,创建的对象占用的内存空间就比较小,因为它...

javascript有哪些特点

1. 动态性和解释性 JavaScript是一种动态类型的脚本语言,不需要预先编译。这意味着在浏览器环境中,JavaScript代码一边被解析一边执行,减少了用户等待时间,提升了交互体验。动态性也使得JavaScript在运行时可以进行类型检查和灵活的数据操作。2. 面向对象和函数式编程支持 JavaScript支持面向对象编程和函数式...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
你认为国产电影中哪个团队堪称“票房毒药”? 我为什么愿意不接男友电话?甚至不想他打给我!也不想和他彻底分手! 类似小四的快穿文 华为手机怎样辨别是不是翻新机? 【冲2022】超全的室内设计师专属CAD平立面模型库和动态图块|让你一键... VB 点击herf jQuery:为什么$('a[@herf]') 不支持此属性或方法 window.location.herf和<a herf="">有什么区别 ...例如:<a herf="#" title=""></a> 我要将当前的时间放入title里面... ...="">值</a> 我要得到这个值!但是不能写死!这怎么等到呢?因为我有很... js创建对象有几种方式 JavaScript定义对象的方法有哪些? js中创建对象的方式有几种,哪几种 Js面向对象有几种方式? JS对象创建常用方式有哪些 js对象的用法是什么? OPPO R11有没有计步器? 邮政快递包寰,有邮政快递包裹9897148774560? 2022年上映电视剧时间表全部 哪位有我爱你,这是最好的安排(2019)主演张彬彬、... 抖音很火两个字的歌名是什么? 最后唐舞麟和霍雨浩哪个比较厉害。 变态这个词是什么时候开始流行的网络语言?还是一... 有没有什么最新的恐怖的电影、 新上映的电影有哪些? 琅寰书院等级 2019年的教师节有几周年? 据说攀登者预售破亿,2019年国庆档都有哪些电影部... 29岁喜茶创始人身价40亿,他是如何实现逆袭的? 哪位大神有路人女主的养成方法fine2019年由松冈祯... JS使用new操作符创建对象的方法分析 js中的math对象有哪些常用的方法,其用法和作用是什么 js对象有哪些类型,创建js对象的方式 怎么验证oracle已经连接java JavaScript中window对象常用的属性、方法 js中对象所拥有的方法有哪些 Oracle新出的Java认证和以前的SCJP有区别吗?是不... 公众号怎么引流推广? JS面向对象之常见创建对象的几种方式 关于思科认证,华为认证,Oracle,Linux认证 | JAV... 微信公众号引流的方法有哪些? js调用对象中的方法 公众号如何快速引流推广呢? Oracle 的 Java认证证书补发 js创建对象几种方式的优缺点对比 如何通过引流到公众号上面? 想考oracle认证或者java程序员和web开发专家认证,... Js中什么是对象,什么是方法 微信公众号引流有哪些方法管用? Java哪些证书好
  • 焦点

最新推荐

猜你喜欢

热门推荐