prototype.js 让你更深入的了解javascript的面向对象特性 http://www.cnblogs.com/meil/archive/2007/05/09/740043.html

手把手教你用USVInland数据集复现内河无人船SLAM(含激光雷达、毫米波雷达数据实战) 本文详细介绍了如何使用USVInland数据集复现内河无人船SLAM技术,涵盖激光雷达和毫米波雷达数据的实战应用。通过多传感器标定、融合策略及SLAM管道搭建,解决水面环境特有的技术难题,提升无人驾驶船舶的定位与建图精度。 阅读详情
js是一门很强大的语言,灵活,方便。 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽。

不过我接触的动态语言只有: js ruby python flash的as 简单的几门, 应该算是井底之蛙之见。

js 语法成分简单,没有 ruby 语言复杂。所以有时候我觉得她更干净(Ruby Fans 不要攻击我哦,我也是很爱很爱很爱Ruby的)!

Prototype.js 无疑是 js的漂亮之作,从它身上应该可以学到一些东西。

如果你用 js 在页面仅仅能写出 if, alert等简单的验证代码,或者想多了解一下Js, 那么此文可能对你有帮助。

好了,开始吧。

现在我突然想起了 Thinking in java 中的 "一切皆是对像", 其实我觉得这句话 有点不适合 java 反倒是更适合 js


1.怎样构造(初始化)对象?

js 代码
 
  1. var Prototype = {   
  2.   Version: '1.5.0_rc1',   
  3.   ScriptFragment: '(?:)((/n|/r|.)*?)(?:<//script>)',   
  4.   
  5.   emptyFunction: function() {},   
  6.   K: function(x) {return x}   
  7. }   

就这样,初始化了一个对象(名字就叫 Prototype),以及对象的四个成员: Version, ScriptFragment, emptyFunction, K

我们也来试试:

js 代码
 
  1. var bbs = {   
  2.  name: 'JavaEye',   
  3.  version: '2.0',   
  4.  describe: "做最棒的软件开发交流区",   
  5.  sayHello: function() { alert("hello, i'm javaeye! ") }   
  6. }  

于是你可以这样使用: bbs.name 或 bbs.sayHello()

看到吗? sayHello 是一个方法哦,不要惊慌,"一切都是对象",所以它和 name 是一样的,只不过初始化,或定义的语法不一样。想起 js 中的正则表达式中的那两个杆杆了吗? 可爱吧!

方法是对象,所以它可以被当作参数传递,或者作为方法的返回值。

所以 Prototype 中有一个 Version 属性,还有一个匹配 script 的正则式字符串, 一个空方法emptyFunction,还有一个方法 K, 它仅仅返回参数。

没问题吧,继续!

2. 构造函数?

先让我们写段代码吧(中学时,我语文极差(大学没语文了),我想写代码让你们明白我心里真实的想法):

js 代码
 
  1. var Person = function(name) { // 这里 Person 是一个方法   
  2.  this.name = name;   
  3. }   
  4. var bencode = new Persion("bencode");  // 这里像Java吧!   
  5. alert(bencode.name);  

先看结果:
从 alert(bencode.name); 可以知道,bencode是对象, 而 name 就是 bencode 的属性, 它被正确地初始化为 "bencode"

所以 var bencode = new Persion("bencode"); 就是构造了一个新的对象,Person() 相当于构造函数

所以 new 这个关键字, 就是构造一个新的对象,并且在这个对象上调用相应的方法,并将这个对象返回。

按上面说: 方法 如果用在 在 new 后面,就相当于成了构造函数了。

话又说回来了, 如果 var bencode = new Persion("bencode") 是 构造了一个对象,像Java, 那么 Person 是不是类呢?
可是 Person 不是方法吗? 可是方法不也是对象吗? 类也是对象?

一切皆对象?

本来无一物!

好了,看 Prototype.js吧

js 代码
 
  1. var Class = {   
  2.   create: function() {   
  3.     return function() {   
  4.       this.initialize.apply(this, arguments);   
  5.     }   
  6.   }   
  7. }  

初始化一个 Class 对象, 它有一个成员,是一个方法, 这个方法返因另一个方法(方法是对象,所以可以作为参数或者返回值)

所以如果我们这么做:

js 代码
 
  1. var A = Class.create(); // 此时 A 是一个方法,方法体,下面解释   
  2. var a = new A(...);  // 对方法使用 new 操作符,就是构造一个新的对象,然后在这个对象上调用这个方法( 现在是 A)  

上面分析说? A相当于类, 哈哈 Class.create();  // 终于名副其实
var a = new A(...);  // 也是相当地直观, 就是构造一个新的对象,类型 是A

new 操作符构造了对象,并调用了 方法, 这个方法到底做了什么呢? 也就是上面没有分析的东东,看看先:

js 代码
 
  1. var Class = {   
  2.   create: function() {   
  3.     return function() {  // 见[1]   
  4.       this.initialize.apply(this, arguments);  // 见[2]   
  5.     }   
  6.   }    
  7. }  

[1]. new 操作符,就会在新产生的对象上调用这个方法
[2]. 哦? 这里就是调用 this 对象上的 initialize方法, 并传递 arguments
  换句话说,就是把构造的任务委托给 initialize 方法
  initialize? 哪里来? 见下面,类的扩展(继承)
 
3. Prototype?

看段老代码:

js 代码
 
  1. var Person = function(name) {   
  2.  this.name = name;   
  3. }   
  4. var bencode = new Person("bencode");  

bencode不是一个自闭的人,他应该可以向javaeye介绍一下自己。
像这样:

js 代码
  1. bencode.sayHello();   


 
假如不能实现以上功能的话, 上面的 new,上面所有的东东都等于垃圾。

所以。需要给 Person 类加"实例方法"

题外话: 静态方法如何添加? 看上面的 Class.create, 仅仅是一个对象的成员而已

好, 再来一段 (为了完整性,上面的几句话,再抄一次)

js 代码
 
  1. var Person = function(name) {   
  2.  this.name = name;   
  3. }   
  4. Person.prototype = {  // protype 是啥?   
  5.  sayHello: function() {   
  6.   alert("hi, javaeye, I'm " + this.name);   
  7.  }   
  8. }   
  9. var bencode = new Person("bencode");   
  10. bencode.sayHello();  

运行代码,通过!

prototype是啥? 请暂时忘记 Prototype(prototype.js) 这个库,名字一样而已!

让我们再从结果上去分析(第一次我们用这种方法分析而得出了 new 的作用),

我们在思考:
 要想 bencode.sayHello() 正常运行
 bencode 是一个对象, 这是我们已经知道的
 sayHello() 应该是 bencode 这个对象的方法才可以
 
 可是bencode 这个对象是 new 操作符产生的, 而 new 此时作用于 Person 这个 "类"
 那么, 哦? 那么有两种可能:
 1. new 产生的那个新对象是不是就是 Person.prototype
 2. Person.prototype 中的成员 将会被 new 操作符添加到 新产生的对象中

再看:

js 代码
 
  1. Person.prototype = {   
  2.  sayHello: function() {   
  3.   alert("hi, javaeye, I'm " + this.name); // 这里有this   
  4.  }   
  5. }  

this.name, 这里的 this 指什么?所以第一个可能讲不通呀

回忆起这段:

js 代码
 
  1. var Person = function(name) {   
  2.  this.name = name;   
  3. }  

如果这里的 this 代表着新产生的对象的话。
那么第二种情况就讲得通了, new 将会把 Person.prototype 这个对象的成员放到 这个新对象中。 与当前行为相符。

所以: Person 的 Prototype 对象中的 成员, 将会被添加到 新产生的对象 中(我是这样理解的)
(不知道 Js解释器是不是开源的, 有空我得去看看,怎么实现的。)

嘿,默认的 Prototype 就是 Object 哦!

4. 扩展?继承?

什么是扩展?啥是继承? ! 我从爸爸那得到了什么?
想不通!

还是实际点:

有一个类A, 它有一个 sayHello方法

js 代码
 
  1. var A = function() {   
  2. }   
  3.   
  4. A.prototype = {   
  5.  sayHello: function() {   
  6.   alert("sayHello A")   
  7.  }   
  8. }   

我想构造一个 B 类,让他继承 A 对象, 这句话太抽象。

其实我们可能想这样:

js 代码
 
  1. var b = new B();   
  2. b.sayHello();  // 调用 A 的 sayHello  

这应该是继承的第一层含义(重用)

怎么办到呢?

var B = function() { // 这里是有一个B类了
}

怎么样添加"实例方法"?  快点想起 Prototype!!!

B.prototype = A.prototype

这样行了吗? 恭喜, 运行通过!

让我们整合一次

js 代码
 
  1. var A = function() {   
  2. }   
  3. A.prototype = {   
  4.  sayHello: function() {   
  5.   alert("sayHello A");   
  6.  }   
  7. }   
  8.   
  9. var B = function() {   
  10. }   
  11. B.prototype = A.prototype;   
  12.   
  13. var b = new B();   
  14. b.sayHello();    

可是如果 B 是这样呢?

js 代码
 
  1. var B = function() {   
  2. }   
  3. B.prototype = {   
  4.  sayHi: function() {   
  5.   alert("sayHi B");   
  6.  }   
  7. }  

我们是不是应该将 A.prototype 中的内容添加到 B.prototype 对象中,而不是代替它呢? 当然。

这样才能"扩展"

题外话?多态在哪里? 嘿嘿

好了,足够多了, 那prototype.js 是怎么样"扩展"的呢?

js 代码
 
  1. Object.extend = function(destination, source) {   
  2.   for (var property in source) {   
  3.     destination[property] = source[property];   
  4.   }   
  5.   return destination;   
  6. }  

这个只是简单地把 source 的成员, 添加到 destination 对象中嘛, 哪里看得出扩展?

如果我这样呢?

js 代码
 
  1. var A = function() {   
  2. }   
  3. A.prototype = {   
  4.  sayHello: function() {   
  5.   alert("sayHello A")   
  6.  }   
  7. }   
  8.   
  9. var B = function() {   
  10. }   
  11. Object.extend(B.prototype, A.prototype); // 先添加父类(A)成员   
  12. Object.extend(B.prototype, { // 再添加B类成员, 如果是同名,则覆盖,行为符合 "多态"   
  13.  sayHi: function() {   
  14.   alert("sayHi B");   
  15.  }   
  16. });   

回忆刚才的 Class.create():

js 代码
 
  1. var Person = Class.create();   
  2. var bencode = new Person("bencode");  

刚才说过, 调用 new 时, 将会创建一个新对象,并且调用 Person 方法, Person 方法会委托给 "新产生对象"的 initialize方法

怎么样给新产生对象添加 initialize 方法? 哈哈,轻松

js 代码
 
  1. Object.extend(Person.prototype, {   
  2.  initialize: function() {   
  3.   this.name = name;   
  4.  } //,   
  5.  // 下面可以添加其他实例方法。   
  6. });  


所以, 我们使用 Prototype 创建类一般格式是这样的:

js 代码
 
  1. var ClassName = Class.create();   
  2. Object.extend(ClassName.prototype, {   
  3.  initialize: function(...) { // 这就相当于构造函数   
  4.  }   
  5.  //...   
  6. });  

如果我们要继承一个类,只要:

js 代码
 
  1. var ClassName = Class.create();   
  2. Object.extend(ClassName.prototype, SuperClassName.prototype);   
  3. Object.extend(ClassName.prototype, {   
  4.  initialize: function(...) {   
  5.  }   
  6.  //...   
  7. });  

面向对象部分基本上就这样。

希望对大家有点帮助!

本来想再接着写 Prototype.js 的源码解读,但一来是因为时间,第二是发现也没有这个必要。
这种东西是看起来快,写起来慢的。哈哈!


原文地址:http://www.javaeye.com/topic/57760

 
使用 Prototype.js 学习 Number 对象的原型 在 JavaScript 中,Number 对象是一个包装了基本数值类型的对象。Prototype.js 是一个流行的 JavaScript 库,它扩展了原生 JavaScript 对象的功能,提供了更便捷和强大的操作方式。本文将介绍如何使用 Prototype.js 来学习和扩展 Number 对象的原型。希望通过这些示例和建议,你能更好地理解和应用 Prototype.js 来学习和扩展 Number 对象的原型。以上只是一些简单的示例,你可以根据需求自行扩展 Number 对象的原型。 阅读详情

相关推荐

Prototype.js框架深入解析与实践指南

JavaScript库如Prototype.js为开发者提供了一套预设的工具和函数集,以简化复杂的编程任务。Prototype.js在早期的JavaScript开发中尤为流行,它提供了一系列扩展,增强了原生JavaScript对象的功能,并简化了DOM操作、Ajax通信和事件处理等。自定义事件处理机制可以使代码更加模块化和可重用。它通常包括创建事件、注册监听器和触发事件等步骤。通过使用事件对象,可以传递更多的上下文信息到监听器中。创建和触发自定义事件的一个简单示例:// 创建自定义事件。

weixin_42181686的博客 1237

Prototype 框架简介

本章将对Prototype框架进行详细的解析。很多人初次接触Prototype,都是从它的$系列函数开始的,它们类似于桌面应用程序的快捷方式,是Prototype框架中使用频率最高的一组函数。此外,Prototype对Ajax的支持也是让开发人员很感兴趣的地方。当然Prototype的功能并不仅限于此,它对JavaScript内置对象进行了大量的扩展,同时也定义了很多新的对象。本章会首先从Prot

应天.Net BLOG 1599

Android WLAN STA/AP 并发

Android 9 引入了可让设备同时在 STA 和 AP 模式下运行的功能。对于支持双频并发 (DBS) 的设备,此功能让一些新功能得以实现,例如在用户想要启用热点 (softAP) 时不会中断 STA WLAN。

华南烹鱼宴 1247

从 prototype.js 深入学习 javascript 的面向对象特性

从 prototype.js 深入学习 javascript 的面向对象特性 js是一门很强大的语言,灵活,方便。 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽。 不过我接触的动态语言只有: js ruby python flash的as 简单的几门, 应该算是井底之蛙之见。 js 语法成分简单,没有 ruby 语言复杂。所以有时候我觉得她更干净(Ruby Fans 不要攻击我...

笨笨的专栏 198

电力电子新手必看:COT控制模式的工作原理与典型应用场景解析

本文深入解析了COT控制模式的工作原理及其在电力电子领域的典型应用。COT控制(恒定导通时间控制)通过固定导通时间机制,解决了传统滞环控制的问题,特别适用于需要快速瞬态响应和高效率的应用场景,如CPU/GPU供电和便携设备电源管理。文章详细介绍了COT控制的核心流程、技术特点及设计实践中的关键考量,帮助电力电子新手快速掌握这一技术。

weixin_30745553的博客 522

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 350

prototype.js开发者手册

prototype.js是什么?万一你没有使用过大名鼎鼎的prototype.js,那么让我来告诉你,prototype.js是由Sam Stephenson写的一个javascript类库。这个构思奇妙,而且兼容标准的类库,能帮助你轻松建立有高度互动的web2.0特性的富客户端页面。如果你最近尝试使用它,你大概了解到文档并不是作者的一个强项。和在我以前使用这个类库的不少开发者一样,一开始

4125

ESP32-P4开发板实战:从零配置VSCode环境到点亮MIPI-DSI屏幕(避坑指南)

本文详细介绍了ESP32-P4开发板在VSCode环境下的配置流程,包括SDK安装、idf_component.yml依赖管理,以及MIPI-DSI屏幕驱动的实现方法。通过实战指南帮助开发者避开常见配置陷阱,快速完成从环境搭建到屏幕点亮的全流程,适用于物联网和嵌入式开发场景。

pp12345的博客 741

prototype.js

prototype.js 是Sam Stephenson写的一个Javascript的小框架(实际上是一个函数库),该框架首页是:http://prototype.conio.net/   prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。   pr...

dengyang0029的博客 259

人工智能面试总结-分类与聚类

目录说说常用的分类算法,以及各自的优缺点?说说为什么正确率有时不能有效评估分类算法?说说什么样的分类器最好?说说聚类算法有哪些衡量标准?(选看)各聚类算法性能比较汇总说说什么是聚类,你知道哪些聚类算法?具体展开介绍你知道的聚类算法?说说K-Means聚类算法流程?说说K-Means聚类算法如何调优?说说K-Means聚类算法如何选择初始点?说说K-Means聚类聚的是特征还是样本?说说K-Means聚类的特征距离是如何计算的?说说聚类与分类的区别?手撕K-Means聚类 说说常用的分类算法,以及各自的优缺点

啥都生的博客 3863

【WRF教程第3.5期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例

WW、forever的博客 1422

prototype.js用法介绍

Prototype是由Sam Stephenson开发的一个Javascirpt类库,也是其他框架的鼻祖,它是对Javascript中对象的一个扩展,并且对Ajax进行了封装。目前Prototype的版本是1.4,可以从 http://prototype.conio.net 下载最近的版本。Prototype包括三的内容:1.提供全局的函数,来替代原先重复的代码;2.对现在的Javascript, Dom等对象进行扩展,提供访问的接口;3.对Ajax的封装,使得开发Ajax更容易。下面进行逐一的介绍。 1.

a294460620的专栏 1045

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

js原型prototype

一、构造函数 构造函数就是一个普通函数,一般构造函数是首字母大写 构造函数执行流程 创建一个新对象 // 只要调用了 new Person() 立刻创建一个新对象 将函数的 this 指向新对象 执行函数中的代码 返回新对象 示例: function Person(name){ this.name = name this.alert_name = f...

xingxingxingge的博客 945

Attention优化|2w字原理&图解: 从Online-Softmax到FlashAttention V1/V2/V3

本文通过原理分析和图解的方式,通俗易懂地FlashAttention系列算法。FlashAttention V1/V2在LLM领域的应用已经非常广泛,相关的论文也反复读了几遍。FA1和FA2论文非常经典,都推荐读一下(不过FA2论文中公式错误不少本文大约1.8w字,包括以下内容:0x07 分布式训推使用FlashAttention0x09 FlashAttention中MQA/GQA以及Causal Mask处理。

具身机器人和通用AI 5232

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

关于JS中的prototype介绍

转自:微点阅读 https://www.weidianyuedu.comJS中的phototype是JS中比较难理解的一个部分本文基于下面几个知识点:1 原型法设计模式在.Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。2 javascript的方法可以分为三类:a 类方法b 对象方法c 原型方法例子:function People(name){this.name=name;//对象方法this.I

xiaoweids的博客 3046

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

prototype.js 代码解读及使用方法之最详细中文版

prototype.js 代码解读及使用方法之最详细中文版:/** * 定义一个全局对象, 属性 Version 在发布的时候会替换为当前版本号 */var Prototype = {  Version: @@VERSION@@}/** * 创建一种类型,注意其属性 create 是一个方法,返回一个构造函数。 * 一般使用如下 *     var X = Class.create();  返

one_dollar 2099

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JS原型对象--Prototype

原型对象是JS实现继承和方法共享的基础。通过理解原型链、构造函数的。

buzhidaowobuhui的博客 1582

JavaScript prototype 使用介绍

JavaScript prototype 使用介绍 用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱 用过JavaScript的同学们肯定都对prototype如雷...

weixin_34221073的博客 3004

js 深入理解原型(prototype)及如何创建对象

原型本质 ,创建对象的方法

weiweiliude2的专栏 3084

prototype.js 使用指南

1. Prototype是什么? 或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。 如果你最近体验了这个程序包,你很可能会发现文档并不是它的强项之一。像所有在我之前的开发者一样,我只能一头扎进prototype.

jxufewbt的专栏 1569

探索Prototype.js:强大而灵活的JavaScript库

探索Prototype.js:强大而灵活的JavaScript库 去发现同类优质开源项目:https://gitcode.com/ 是一个开放源代码的JavaScript框架,旨在简化和加速Web开发。它通过提供一套丰富的DOM操作API、强大的对象扩展机制和事件处理功能,让开发者能够更高效地编写可维护的JavaScript代码。 技术分析 DOM操作 Prototype.js 提供了一套直观且高...

gitblog_00065的博客 534

prototype.js 1.4版开发者手册

一些实用的函数 这个类库带有很多预定义的对象和实用函数,这些东东的目的显然是把你从一些重复的打字中解放出来 。 使用$()方法 $() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。 比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返...

VirgooooS 330

Gemma-4-E4B-it图像理解能力测试:从物体识别到场景分析全解析

Gemma-4-E4B-it是Google DeepMind开发的多模态开源模型,具备强大的图像理解能力,能够处理文本和图像输入并生成精准的文本输出。作为Gemma 4系列的重要成员,该模型在物体识别、场景分析、文档解析等视觉任务中表现出色,为开发者和研究者提供了高效且灵活的图像理解解决方案。 ## 核心图像理解能力解析 🖼️ Gemma-4-E4B-it的图像理解能力建立在先进的视觉编码器

gitblog_00054的博客 696

property.js

Code *********************************************** property.js实例详解(一) *********************************************** /**  * @author zengaihui  */ /*  Prototype JavaScript framework, version ...

weixin_34090562的博客 211

prototype.js 手册

prototype.js 中文手册 (1.4.0) prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值,所以我强烈建议B/S开发人员和对JS开发感兴趣的朋友去浏览一些它的源代码,其中有很

子君家园 419
上一篇: func.apply($A,$B)http://bbs.51js.com/viewthread.php?tid=69700
下一篇: 关于offsetleft,offsettop的一些资料 http://blog.youkuaiyun.com/xie156005934/archive/2007/06/30/1672708.aspx
cuoguo1111
博客等级 码龄20年 21粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值