JS 对象

【JavaScript BOM】定时器、location对象、navigator对象、JS执行机制 BOM1.BOM概述2.window对象常见事件窗口加载事件1窗口加载事件2两者区别调整窗口大小事件3.定时器setTimeout()案例:五秒后自动关闭广告停止setTimeout()定时器setInterval()案例:倒计时停止setInterval()定时器案例:发送短信this指向4.JS执行机制JS单线程同步和异步5.location对象5.1 URL5.2 location对象的属性案例:5秒后跳转页面案例:获取URL参数5.3 location对象的方法6.navigator对象 1.BOM 阅读详情

JScript对象

Jscript 对象是属性和方法的集合。一个方法就是一个函数,是对象的成员。属性是一个值或一组值(以数组或对象的形式),是对象的成员。Jscript 支持四种类型的对象:内部对象、生成的对象、宿主给出的对象(如 Internet 浏览器中的 window 和 document)以及 ActiveX 对象(外部组件)。

作为数组的对象

在 Jscript 中,对象和数组几乎是以相同的方式处理的。对象和数组均可以被赋予任意值,实际上数组只是一种特殊的对象。数组和对象的区别在于数组有一个“奇妙的” length 属性,而对象没有。这意味着可以给数组的一个元素赋予比其他元素更大的值。例如,myArray[100] = "hello" — 然后 length 属性将自动地被更新为 101(新长度)。同样,如果修改数组的 length 属性,将删除不再是数组部分的元素。

Jscript 中所有的对象均支持“expando”属性或那些可以在运行时动态添加和删除的属性。这些属性可以有包含数字的任意名称。如果属性的名称是简单的标识符<<参考标识符规则>>,可以在对象名称的后面加句点,例如:

var myObj = new Object();

// 添加两个 expando 属性,'name' 和 'age'
myObj.name = "Fred";
myObj.age = 42;

如果属性名称不是一个简单的标识符,或者在写脚本的时候不知道,可以在方括号中使用任意表达式来索引属性。在 Jscript 中所有 expando 属性的名称在被添加到对象之前被转换为字符串。

var myObj = new Object();

// 添加两个无法写在 object.property 语
// 法中的 expando 属性。
// 第一个属性包含无效字符(空格),
// 所以必须写在方括号里。
myObj["not a valid identifier"] = "This is the property value";

// 第二个 expando 名称是一个数字,
// 所以也必须写在方括号里。
myObj[100] = "100";

传统的作法是赋给数组元素以 0 开始的数字索引。这些数组元素与 length 属性相交互。然而,由于所有的数组也是对象,也支持 expando 属性。请注意,虽然如此,expando 属性并不以任何方式与 length 属性相交互。例如:

// 三个元素的数组
var myArray = new Array(3);

// 添加数据
myArray[0] = "Hello";
myArray[1] = 42;
myArray[2] = new Date(2000, 1, 1);

// 显示数组的长度 3
window.alert(myArray.length);

// 添加某些 expando 属性
myArray.expando = "JScript!";
myArray["another Expando"] = "Windows";

// 仍然显示 3,因为两个 expando 属性
// 并不影响长度。
window.alert(myArray.length);

虽然 Jscript 并不直接支持多维数组,但是可以在数组元素中存储任意种类的数据 — 包含其他数组。所以通过在另一个数组的元素里存储其他数组可以得到多维数组的特性。例如,下面的代码为最大为 5 的数字建立了乘法表:

// 若是更大的表请改变本数
var iMaxNum = 5;
// 循环计数
var i, j;

// 新数组。由于数组从 0 开始计数,
// 而不是 1,所以数组大小为 iMaxNum + 1。
var MultiplicationTable = new Array(iMaxNum + 1);

// 为每个主要的数做循环(表中的每一行)
for (i = 1; i <= iMaxNum; i++)
{
    // 生成表中的列
    MultiplicationTable[i] = new Array(iMaxNum + 1);

    // 将乘法的结果存在行中
    for (j = 1; j <= iMaxNum; j++)
    {
        MultiplicationTable[i][j] = i * j;
    }
}

window.alert(MultiplicationTable[3][4]); // 显示 12
window.alert(MultiplicationTable[5][2]); // 显示 10
window.alert(MultiplicationTable[1][4]); // 显示 4

创建自己的对象

要创建自己的对象实例,必须首先为其定义一个构造函数。构造函数创建一个新对象,赋予对象属性,并在合适的时候赋予方法。例如,下面的示例为 pasta 对象定义了构造函数。注意 this 关键字的使用,它指向当前对象。

// pasta 是有四个参数的构造器。
function pasta(grain, width, shape, hasEgg)
{
    // 是用什么粮食做的?
    this.grain = grain;

    // 多宽?(数值)
    this.width = width;     

    // 横截面形状?(字符串)
    this.shape = shape;   

// 是否加蛋黄?(boolean)
    this.hasEgg = hasEgg;  
}

定义了对象构造器后,用 new 运算符创建对象实例。

var spaghetti = new pasta("wheat", 0.2, "circle", true);
var linguine = new pasta("wheat", 0.3, "oval", true);

可以给对象实例添加属性以改变该实例,但是用相同的构造器生成的其他对象定义中并不包括这些属性,而且除非你特意添加这些属性那么在其他实例中并不显示出来。如果要将对象所有实例的附加属性显示出来,必须将它们添加到构造函数或构造器原型对象(原型在高级文档中讨论)中。

// spaghetti 的附加属性。
spaghetti.color = "pale straw";
spaghetti.drycook = 7;
spaghetti.freshcook = 0.5;

var chowFun = new pasta("rice", 3, "flat", false); 
// chowFun 对象或其他现有的 pasta 对象
// 都没有添加到 spaghetti 对象
// 的三个新属性。

// 将属性‘foodgroup’加到 pasta 原型对象
// 中,这样 pasta 对象的所有实例都可以有该属性,
// 包括那些已经生成的实例。
pasta.prototype.foodgroup = "carbohydrates"

// 现在 spaghetti.foodgroup、chowFun.foodgroup,等等
// 均包含值“carbohydrates”。

在定义中包含方法

可以在对象的定义中包含方法(函数)。一种方法是在引用别处定义的函数的构造函数中添加一个属性。例如,下面的示例扩充上面定义的 pasta 构造函数以包含 toString 方法,该方法将在显示对象的值时被调用。

// pasta 是有四个参数的构造器。
// 第一部分与上面相同。
function pasta(grain, width, shape, hasEgg)
{
    // 用什么粮食做的?
    this.grain = grain;

    // 多宽?(数值)
    this.width = width;     

    // 横截面形状?(字符串)
    this.shape = shape;   

    // 是否加蛋黄?(boolean)
    this.hasEgg = hasEgg;  

    // 这里添加 toString 方法(如下定义)。
    // 注意在函数的名称后没有加圆括号;
    // 这不是一个函数调用,而是
    // 对函数自身的引用。
    this.toString = pastaToString;
}

// 实际的用来显示 past 对象内容的函数。 
function pastaToString()
{
    // 返回对象的属性。

    return "Grain: " + this.grain + "/n" +
        "Width: " + this.width + "/n" +
        "Shape: " + this.shape + "/n" +
        "Egg?: " + Boolean(this.hasEgg);
}

var spaghetti = new pasta("wheat", 0.2, "circle", true);
// 将调用 toString() 并显示 spaghetti 对象
// 的属性(需要Internet 浏览器)。
window.alert(spaghetti);
 

内部对象

Microsoft Jscript 提供了 11 个内部(或“内置”)对象。它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象。每一个对象有相关的方法和属性,这在语言参考中有详细的描述。本节中也描述了某些对象。

Array 对象

数组下标可以被认为是对象的属性,它是通过数字索引来引用的。注意添加到数组中的已命名的属性不能通过数字来索引;它们是与数组元素分离的。

使用 new 运算符和 Array() 构造器 生成一个新的数组,如下面的示例。

var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";

用关键字 Array 生成数组时,Jscript 包含了 length 属性,该属性记录了数组入口数。如果没有给该属性指定值,则设置长度为 0 且数组没有入口点。如果指定一个数值,则将长度设置为该数。如果指定了不止一个参数,则这些参数被用作数组的入口。另外,参数的数目被赋给 length 属性。如下面的示例与前一个示例是等价的。

var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

当向用关键字 Array 生成的数组中添加元素时,Jscript 自动改变属性 length 的值。Jscript 中的数组索引总是以 0 开始,而不是 1,所以属性 length 通常比数组的最大索引大 1。

String对象

在 Jscript 中,可以将字符串(和数)当作对象来处理。string 对象 有一些内置方法,可以和自己的字符串一起使用。其中一个是substring 方法,它返回字符串的一部分。该方法以两个数字作为参数。

aString = "0123456789";
var aChunk = aString.substring(4, 7);  // 将 aChunk 设为 "456"。
var aNotherChunk = aString.substring(7, 4);  // 将 aNotherChunk 设为 "456"。
// 使用上面生成数组的示例:
firstLetter = theMonths[5].substring(0,1);  // 将变量 firstLetter 设为“J”。

String 对象的另一个属性是 length 属性。本属性包含了字符串中的字符数(空字符串为 0)。它是一个数值,可以直接在计算中使用。

var howLong = "Hello World".length  // 设置变量 howLong 为 11。

Math 对象

Math 对象有许多预定义属性和方法。属性是特殊的数字。这些特殊的数字之一是 pi 值(近似 3.14159…)。这是 Math.PI 属性,如下例所示。

// 声明一个半径变量并赋数值。
var circleArea = Math.PI * radius * radius;  // 注意 Math 和 PI 大写。

Math 对象的一个内置方法是乘幂方法(或 pow),使用该方法求得指定数的幂次。下面的例子同时使用了 pi 和乘幂。

// 本公式计算给定半径的球体的体积。
volume = (4/3)*(Math.PI*Math.pow(radius,3));

Date 对象

Date 对象可以被用来表示任意的日期和时间,获取当前系统日期以及计算两个日期的间隔。它拥有一些预定义的属性和方法。通常,Date 对象给出星期;月份,天数和年份;以及以小时,分钟和秒表示的时间。该信息是基于 1970 年1 月 1 日 00:00:00.000 GMT 开始的毫秒数,其中 GMT 是格林威治标准时间(首选术语是 UTC,或者“全球标准时间”,它引用的信号是由“世界时间标准”发布的)。Jscript 可以处理 250,000 B.C. 到 255,000 A.D范围内的日期。

使用 new 运算符创建一个新的 Date 对象。下面的示例计算当年已过去的天数和今年剩下的天数。

/*
本示例使用前面定义的月份名称数组。
第一条语句以“Day Month Date 00:00:00 Year”格式
对 thisIsToday 变量赋值。
*/
var thisIsToday = new Date();

var toDay = new Date();  //获取今天的日期。

// 提取年,月,日。
var thisYear = toDay.getFullYear();
var thisMonth = theMonths[toDay.getMonth()];
var thisDay = thisMonth  + " " + toDay.getDate() + ", " + thisYear;

Number 对象

除了 Math 对象中可用的特殊数值属性(例如 PI)外,在 Microsoft Jscript 中, Number 对象有几个其他的数值属性。

属性描述
MAX_VALUE可能的最大数大约为 1.79E+308;可以是正数或负数。(具体数值随系统不同而有微小差别。)
MIN_VALUE可能的最小数大约为 2.22E-308;可以是正数或负数。(具体数值随系统不同而有微小差别。)
NaN特殊非数量值,“不是数值”。
POSITIVE_INFINITY比最大正数(Number.MAX_VALUE)还要大的任意正值自动被转换为此值,代表正无穷大。
NEGATIVE_INFINITY比最小的负数(负的 Number.MAX_VALUE)还小的任意值被自动转换为此值,代表负无穷。

Number.NaN 是一个特殊的属性,被定义为“不是数值”。例如被 0 除返回 NaN。试图解析一个无法被解析为数字的字符串同样返回 Number.NaN。把 NaN 与任何数值或本身作比较的结果都是不相等。不能通过与 Number.NaN 比较来测试 NaN 结果,而应该使用 isNaN() 函数。

『杭电1199』Color the Ball Problem Description There are infinite balls in a line (numbered 1 2 3 ....), and initially all of them are paint black. Now Jim use a brush paint the balls, every time give two integers a b and follow by a char 'w' or 'b', 'w' denotes the ball from a to 阅读详情

相关推荐

5G NR LDPC码(2)—— 从基图到速率匹配:解码5G高速数据信道的标准化设计

本文深入解析了5G NR LDPC码的标准化设计流程。从作为核心骨架的基图(BG1/BG2)出发,详细阐述了其如何通过扩展因子Z灵活生成实际校验矩阵,并协同传输块大小计算与分段策略。文章重点剖析了基于循环缓存和冗余版本的速率匹配机制,以及其如何高效支撑增量冗余混合自动重传请求,从而确保5G高速数据信道在复杂环境下的可靠与高效传输。

weixin_29206669的博客 272

【JavaScript】JS对象和JSON

var perStr='{"属性名":"属性值","属性名":"属性值","属性名":{},"属性名":["","",""],"属性名":[{},{},{}]}'3、创建数组并初始化:new Array("one","two",2) ,可简写: var 数组名=[元素,...]9、数组.splice(start,deleteCount,[添加的元素,...])---删除或删除添加原数组元素。1、数组1.concat(数组2)---返回数组1和数组2合并后的新数组。

想做职场小白吗? 我来教您....... 3168

SAP生产版本导入避坑大全:从‘黄灯’到‘绿灯’,详解CM_FV_MKAL_CONSISTENCY_CHECK检查函数

本文深入解析SAP生产版本导入过程中的常见问题,特别是通过`CM_FV_MKAL_CONSISTENCY_CHECK`检查函数从‘黄灯’异常到‘绿灯’正常的修复方法。涵盖静态与动态校验机制、典型异常场景诊断及批量导入最佳实践,帮助SAP运维人员高效解决生产版本管理难题。

weixin_30568591的博客 387

JavaScript对象详解,js对象属性的添加

JavaScript对象详解,对象属性

weixin_44992737的博客 2万+

Abaqus子程序开发避坑指南:从UMESHMOTION到齿轮磨损分析实战

本文深入探讨Abaqus子程序开发中的关键技术与避坑指南,重点解析UMESHMOTION在齿轮磨损分析中的实战应用。从开发环境搭建、调试框架构建到性能优化和大规模计算,提供系统化的解决方案。通过真实案例展示如何避免内存泄漏、网格畸变等常见问题,并介绍数据驱动的磨损预测等前沿技术,帮助工程师提升仿真精度与效率。

weixin_30892037的博客 88

e-puck场景搭建

可以注意到一个黑色的小窗口出现在三维视图的左上角。它显示了电子吸盘机器人的摄像头拍摄的图像。该图像将保持黑色,直到机器人的控制器明确启用相机。最后,单击右上角的“x”可以关闭它。在对话框中,选择PROTO节点(Webots项目)/robots/gctronic/e-puck/e-puck(Robot)。一个电子吸盘机器人应该出现在竞技场的中央。通过按Alt+左键单击+拖动,对机器人施加力。无法对WoodenBox节点施加力,因为默认情况下,它们没有质量,并且被视为粘在地板上。将新控制器与机器人链接。

weixin_66540163的博客 767

JavaScript 对象-js什么是对象

JavaScript 对象JavaScript 中的所有事物都是对象对象只是一种特殊的数据。访问对象的方法创建 JavaScript 对象对象是可变的,它们是通过引用来传递的。 JavaScript 中的所有事物都是对象 字符串、数值、数组、函数等等.等等. JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。 布尔型可以是一个对象。 数字型可以是一个对象。 字符串也可以是一个对象 日期是一个对象 数学和正则表达式也是对象 数组是一

yuan_xiaoxin的博客 268

深入傅里叶级数与傅里叶变换:从基础到应用

傅里叶分析为我们提供了一种理解信号频率结构的强大工具。从傅里叶级数到傅里叶变换,再到快速傅里叶变换(FFT),其理论与应用紧密结合,对现代科学技术的发展意义非凡。如果你对信号处理、数据分析或工程计算感兴趣,傅里叶分析是必须掌握的基础工具。希望本文能帮助你对傅里叶分析有更深入的理解!如果有问题或想法,欢迎在评论区讨论!

qq_56683019的博客 3522

JavaScript学习手册四:JS对象

JS对象引言A、对象的创建任务描述相关知识代码文件B、属性的增删改查任务描述相关知识代码文件C、属性的检测和枚举任务描述相关知识代码文件 引言 1、JavaScript是基于对象的语言,在JavaScript中,一切都可以被称为对象,包括字符串、数字、布尔型、HTML Element等。这些JavaScript中已有的对象称为内置对象,而用户自己定义的对象叫做自定义对象。自定义对象是数据和函数(也叫方法)的集合。 2、这里要特别提醒的是,JavaScript虽然也是一门基于对象的语言,但是它实现对象的

qq_45823118的博客 7695

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 432

【Flink】Flink提交任务到Yarn报错Unable to close file because the last blockBP enough number of replicas

当使用 HDFS 存储文件时,每个数据块会有多个副本分布在不同的节点上,以确保数据的可靠性和容错性。然而,由于某种原因,最后一个数据块 blk_1101776325_28036289 的副本数量不足,导致无法成功关闭文件。如果确定副本数量正确,并且问题仍然存在,可以尝试手动修复副本不足的情况。异常消息表明在关闭文件时出现问题,我的原因是hadoop上有个节点有问题,导致提交到那个节点的时候,无法传递包到相关的机器上。检查 HDFS 集群的状态,确保所有节点都正常工作,没有节点宕机或网络故障等问题。

九师兄 935

javascript对象 之 js对象基本使用

dfd fsdfsdfdfsdf sdfaf

芦小荟的博客 -- 芦慧芳 287

python实现DoIP基本通信(收发报文)

python实现DoIP基本通信(收发报文)

天赐好车的博客 895

【JavaScript】js基础(对象、内置对象)

【JavaScript】js基础(对象、内置对象)

“欢迎来到我的个人博客,我是一名热爱前端技术、致力于提升用户体验的前端开发工程师。” 1036

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JavaScript(JS)的对象

1.array 数组对象 2.String 字符串对象 3.JSON 对象(数据载体,进行数据传输) 4.BOM 浏览器对象 5.DOM 文档对象(了解)

2303_76505072的博客 1136

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【没对象怎么办?JavaScript-带你找对象】对象是什么,对象能干嘛,对象该怎么用,本篇带你了解js中的对象。

JavaScript-对象,清晰地阐述了对象是什么,对象能干嘛,如何使用对象,对象该在什么时候用

zhaochen1127的博客 1682

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript_JS对象,eval方法

JS对象 JS中一切数据皆对象 定义对象 字面量形式创建对象 1. var 变量名 = {}; // 空对象 2. var 变量名 = {键:值,....}; // 1、字面量形式创建对象 var obj = {}; // 空对象 var obj2 = { uname:"zhangsan", uage:18 }; obj2.usex=true; ...

Super_XiongDa的博客 938

JavaScript:从JS的执行机制到location对象

JavaScript语言的一大特点就是单线程,也就是同一时间只能做一件事。因为JavaScript是为了处理页面中的用户交互,以及制作DOM二诞生的。比如我们对某个DOM元素进行添加和删除操作,这个不能同时进行,应该先添加,后删除。这样也会有问题:如果JS执行时间过长,会造成页面渲染不连贯,导致页面渲染加载阻塞的感觉为了解决这个问题,利用多喝CPU的计算能力,HTML5提粗Web Worker标准,允许JavaScript脚本创建多个线程,于是就有了同步和异步。

2401_88226934的博客 1250

js 操作java对象_JavaScript操作java对象

JavaScript操作Java对象的实现:代码片段1(获取脚本引擎):import java.util.List;import javax.script.ScriptEngine;import javax.script.ScriptEngineFactory;import javax.script.ScriptEngineManager;import javax.script.ScriptExc...

weixin_39915668的博客 5012

JavaScript——DOM编程、JS的对象和JSON

JavaScript——DOM编程、JS的对象和JSON

雷神乐乐的博客 1546

java script对象_JavaScript 对象

JavaScript 对象JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。所有事物都是对象JavaScript 提供多个内建对象,比如 String、Date、Array 等等。对象只是带有属性和方法的特殊数据类型。布尔型可以是一个对象。数字型可以是一个对象。字符串也可以是一个对象日期是一个对象数学和正则表达式也是对象数组是一个...

weixin_39900206的博客 250

【JS笔记:JS对象】JavaScript对象相关

对象的概述: **概述:**对象属于一种引用数据类型,在对象中可以保存多个不同数据类型的属性,用来保存自己的属性值,属性值可以是任意数据类型。 对象的分类: 内建对象 由ES标准中定义的对象,在任何的ES的实现中都可以使用 比如:Math对象、String对象、Number对象、Boolean对象、Function对象、Object对象… 宿主对象 由JS的运行环境提供的对象,目前来讲主...

WEB前端李志杰 237

JavaScript学习总结【3】JS对象

在 JS 中一切皆对象,并提供了多个内置对象,比如:String、Array、Date 等,此外还支持自定义对象。对象只是一种特殊类型的数据,并拥有属性和方法,属性是与对象相关的值,方法是能够在对象上执行的动作。   1、String 对象   String 对象用于处理文本,也就是字符串。一个字符串用于存储一系列的字符,通常 JS 字符串是原始值,可以使用变量声明,也可以使用

不忘初心,方得始终 7814

javascript和面向对象,JS声明的对象什么时候会被销毁

如何将JavaScript代码分解成几行吗? \ 转义符 把特殊符号显示出来 \n 换行符 在字符串语句中可以通过在第一行末尾使用反斜杠“\”来完成 例:document.write(“This is \a program”); var newP = document.createElement(“p”); var textNode = document.crea...

qq_42838904的博客 1326

JavaScript对象详解,深入理解js对象

定义: 对象是JavaScript的基本数据类型。对象也是一种复合值:可以通过名字访问这些值,我们可以将对象看做是从字符串到值的映射,当然对象不仅仅是字符串到值的映射,除了自有的属性还可以从原型继承属性。 创建对象: 1.字面量方式 var empty={} //创建一个空对象 var obj={a:1,b:2};//两个属性的对象 var compObj={a:'1',b:'2',cc:{ d:'3', e:'4' } }; //复杂的对象 .

编程界明世隐的博客 3217
上一篇: 高级 JScript
下一篇: 复选框选择的判断
skytalemcc
博客等级 码龄18年 86粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值