object

JavaScript .prototype如何工作?

会有一股神秘感。 提交于 2020-04-06 18:45:01
问题: I'm not that into dynamic programming languages but I've written my fair share of JavaScript code. 我不喜欢动态编程语言,但是我写了相当一部分JavaScript代码。 I never really got my head around this prototype-based programming, does any one know how this works? 我从来没有真正了解过这种基于原型的编程,有人知道它是如何工作的吗? var obj = new Object(); obj.prototype.test = function() { alert('Hello?'); }; var obj2 = new obj(); obj2.test(); I remember a lot discussion I had with people a while back (I'm not exactly sure what I'm doing) but as I understand it, there's no concept of a class. 我记得很久以前与人们进行过多次讨论(我不确定自己在做什么),但是据我了解,这里没有一个课堂的概念。 It's just

JavaScript(1) -- JS入门

拟墨画扇 提交于 2020-04-06 17:44:45
1. JavaScript介绍 JavaScript是属于HTML与Web的解释性编程语言,也是一种以函数优先的弱类型轻量级的脚本语言,无需进行预编译即可与HTML前端页面进行行为交互,支持跨平台运行,可在多种平台下(如Windows、Linux、Mac、Android、iOS等)。目前JavaScript被广泛地应用于Web前端Html实现页面交互、实现浏览器页面事件响应、前端数据验证、检验访客浏览器信息、控制cookies的创建与修改、基于Node.js技术进行服务器端编程。 2. JavaScript基本语法 2.1. JavaScript的三种定义方式 JS一般有三种定义的方式: ① 写在<a>标签的href属性内; ② 写在<script>标签内; ③ 单独写一个JS文件,使用外连的方式引入; 下面直接给出代码示例以区分这三种方式的不同: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="UTF-8"> <title>三种JS的写法</title> <!--第二种写法:写在script代码块中--> <script type="text/javascript">

SpringAOP-2

偶尔善良 提交于 2020-04-06 14:54:01
title: SpringAOP-2 tags: Spring categories: Spring author: 无知的小狼 date: 2020-04-06 00:20:00 使用AOP前,先了解下JavaProxy和Cglib的用法。 package com.example.springboot; import com.wzl.entity.UserService; import com.wzl.entity.UserServiceImpl; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Proxy; /** * wzl 动态代理的测试类 */ public class JavaProxyTest { public static void main(String[] args) { final UserServiceImpl userServiceImpl = new UserServiceImpl(); UserService userService = (UserService) Proxy

11-java学习笔记-反射

强颜欢笑 提交于 2020-04-06 08:03:08
1.反射的应用场景 一、概述 反射技术: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 二、应用场景 一个已经可以使用的应用程序,因为程序已经做好可以运行使用,不能再进行代码的加入了。而当后期我们新的功能加入程序时,该怎么做呢?就如我们的电脑一样,后期我们可能会鼠标、键盘等,所以电脑给我们预留了usb接口,只要符合这个接口规则的设备,电脑就可以通过加载驱动等操作来使用。 那这个程序能用了,如何使用后期出现的功能类呢? 常用的作法,会提供一个配置文件,来供以后实现此程序的类来扩展功能。对外提供配置文件,让后期出现的子类直接将类名字配置到配置文件中即可。该应用程序直接读取配置文件中的内容。并查找和给定名称相同的类文件。进行如下操作: 1)加载这个类。 2)创建该类的对象。 3)调用该类中的内容。 应用程序使用的类不确定时,可以通过提供配置文件,让使用者将具体的子类存储到配置文件中。然后该程序通过反射技术,对指定的类进行内容的获取。 好处:反射技术大大提高了程序的扩展性。 2. 反射的基石-Class类 对比提问: Person类代表人,它的实例对象就是张三,李四这样一个个具体的人,

Java对象实例化报错:java.lang.InstantiationException: com.bjbde.pay.model.BdModel.BdMemberApiConfig

三世轮回 提交于 2020-04-06 06:48:24
现象 开发中使用实体类创建对象时,报错: java.lang.InstantiationException: com.bjbde.pay.model.BdModel.BdMemberApiConfig 实例化对象的代码 public static <T> T map2Bean(Map<String, Object> source, Class<T> instance) { try { T object = instance.newInstance(); Field[] fields = object.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); FieldName fieldName = field.getAnnotation(FieldName.class); if (fieldName != null){ field.set(object,source.get(fieldName.value())); }else { field.set(object,source.get(field.getName())); } } return object; } catch (InstantiationException |

Collection 接口

十年热恋 提交于 2020-04-06 03:57:09
Collection 是java 集合层次结构的根接口,包含了List 和 Set 的所有通用方法并且给出了说明,了解一下有助于理解具体集合实现类的相关方法的实现细节。在此先列出jdk1.8 之前的方法: /** * 集合层次结构中的根接口。集合表示一组对象,这些对象在集合中称为“元素” * 一些集合允许重复的元素,而另一些则不允许。 一些是有序的,而其他则是无序的。 * JDK没有提供此接口的任何直接实现:它提供了更具体的子接口的实现,例如Set 和 List。 * 该接口通常用于传递集合并在需要最大通用性的地方操作它们。 */ public interface Collection< E > extends Iterable< E > {// Iterable< E >是 迭代器接口 // Query Operations 查询操作 /** * 返回此集合中的元素个数。 * 如果大于 Integer.MAX_VALUE 就返回 Integer.MAX_VALUE */ int size () ; /** * 如果此集合不包含任何元素就返回 true */ boolean isEmpty () ; /** * 如果此集合包含指定的元素就返回 true * 通常,当且仅当至少包含一个元素 e 满足 (o==null ? e==null : o.equals(e)) 返回 true

C# TypeOf 和GetType的区别

℡╲_俬逩灬. 提交于 2020-04-06 01:27:50
相同点:两者返回的都是 System.Type 区别TypeOf是一个运算符,只能针对类型进行运算。 GetType是一个集成自Object的方法,任何一个object的变量都可以调用。 以下来自msdn: C# typeof 运算符(在 Visual Basic 中为 GetType 运算符,在 Visual C++ 中为 typeid 运算符)返回一个 Type 对象。 表示某个类型是唯一的 Type 对象;即,两个 Type 对象引用当且仅当它们表示相同的类型时,才引用相同的对象。 这允许使用参考等式来比较 Type 对象。 这个类是线程安全的;多个线程可以同时从此类型的一个实例读取数据。 Type 的实例可表示以下任何类型: 类 值类型 数组 Interfaces 指针 枚举 构造泛型类型和泛型类型定义 构造泛型类型、泛型类型定义和泛型方法定义的类型实参和类型形参 可以通过下列方式获得对与某个类型关联的 Type 对象的引用: Object . . :: . GetType 方法返回表示实例类型的 Type 对象。 静态 GetType 方法返回 Type 对象,该对象表示由其完全限定名指定的类型。 Module . . :: . GetTypes 、 Module . . :: . GetType 和 Module . . :: . FindTypes 方法返回 Type

数据迁移导致的对象名无效

北城余情 提交于 2020-04-06 00:17:00
在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复。但是,此时会出现问题,这里说明几种常见问题的解决方法。 一、孤立用户的问题 比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于test的用户表。 这个问题有两种办法解决。 先说解决的前提条件。 首先,要用备份文件还原数据库,我们这里的数据库名为testdb,里面有属于用户test的用户表。这个很容易了操作了,不多讲了,在企业管理器中很方便可以恢复。恢复后,就产生了孤立用户test。 然后,用sa用户或者具有DBA权限的用户登录,创建一个test数据库登录用户,密码随便设置了,也可以和以前的保持一致。我们用它来对应孤立的test用户。 下面就有两种操作方法了,第一种就是改变对象的属主,第二种就是使登录用户和数据库的孤立用户对应起来。先说第一种方法。 1、修改对象属主 就是将原本属于数据库用户test的用户表,修改为属于dbo的用户表;然后修改test登录用户的数据库为testdb,就可以直接使用test登录用户登录后对该数据库进行操作了。 使用的存储过程 sp_changeobjectowner

对象的拓展

别来无恙 提交于 2020-04-05 23:29:29
对象拓展 对象拓展回顾: 对象字面量,对象解构,三个点运算符 对象name属性 对象的方法name属性,但是有两种属性方法比较特殊。 1、如果是特性方法,要通过特性对象获取。 // // 对象 // let obj = { // demo() {}, // // 特性方法 // get num() {}, // set num(val) { // return 10 // }, // } // console.log(obj.demo.name) // // 特性方法名称 // // console.log(obj.num.name) //报错 // // 通过特性对象获取 // let descriptor = Object.getOwnPropertyDescriptor(obj, 'num'); // console.log(descriptor) // console.log(descriptor.get.name) // console.log(descriptor.set.name) 2、如果是symbol属性方法,返回symbol描述。 // // Symbol数据 // let s1 = Symbol('ickt') // let s2 = Symbol() // // 对象 // let obj = { // demo() {}, // // 特性方法 //

【第三方类库】Underscore.js Version (1.2.3) 中文文档

拥有回忆 提交于 2020-04-05 23:03:48
Underscore.js Version (1.2.3) 中文文档 Underscore 一个非常实用的JavaScript库,提供许多编程功能的支持,就像你期望 Prototype.js (或者 Ruby ), 有这些功能且不扩展任何JavaScript的原生对象。 It's the tie to go along with jQuery 's tux. Underscore提供60多个方法,即有普通的功能,例如: map , select , invoke — 也有更多特殊的编程辅助方法,例如:函数绑定、javascript模板、绝对相等判断等待。 如果一些现代的浏览器提供了内置的 forEach , map , reduce , filter , every , some 和 indexOf 方法,Underscore就委托给浏览器原生的方法。 Underscore提供完整的 测试用例集 供你精读。 你也可以阅读有注释的 源代码 。 项目代码放在 GitHub 上,你可以通过 issues页 、Freenode的 #documentcloud 频道、发送tweets给 @documentcloud 三个途径报告bug以及参与特性讨论。 Underscore是 DocumentCloud 的一个开源组件。 下载 (Right-click, and use "Save As")