object

Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题 ?

谁说我不能喝 提交于 2020-04-04 10:46:58
受现代 JavaScript 的限制 ,Vue 无法检测到对象属性的添加或删除。 由于 Vue 会在初始化实例时对属性执行 getter/setter 转化,所以属性必须在 data 对象上存在才能让 Vue 将它转换为响应式 的。 但是 Vue 提供了 Vue.set (object, propertyName, value) / vm.$set (object, propertyName, value) 来实现为对象添加响应式属性,那框架本身是如何实现的呢? 我们查看对应的 Vue 源码: vue/src/core/instance/index.js export function set (target: Array<any> | Object, key: any, val: any): any { // target 为数组 if (Array.isArray(target) && isValidArrayIndex(key)) { // 修改数组的长度, 避免索引>数组长度导致splcie()执行有误 target.length = Math.max(target.length, key) // 利用数组的splice变异方法触发响应式 target.splice(key, 1, val) return val } // key 已经存在,直接修改属性值 if (key

how to add multiple objects in reactjs?

房东的猫 提交于 2020-04-04 10:12:28
问题 I want to add new Objects when user click on checkbox. For example , When user click on group , it will store data {permission:{group:["1","2"]}}. If I click on topgroup , it will store new objects with previous one {permission:{group:["1","2"]},{topGroup:["1","2"]}}. 1st : The problem is that I can not merge new object with previous one . I saw only one objects each time when I click on the group or topgroup. onChange = value => checked => { this.setState({ checked }, () => { this.setState

利用反射动态创建对象

房东的猫 提交于 2020-04-04 08:42:56
前两天我发了一篇文章《 通过反射动态实例化对象中出现的一个奇怪问题 》,对反射中的某些问题疑惑不解。通过这几天不断查看MSDN,上网查询,现在终于解决了该问题。 在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在本地或从远程创建对象类型,或获取对现有远程对象的引用。它的方法签名是:public static object CreateInstance(Type);(还有其他重载方法)注意它的返回值为object,MSDN对返回值的描述是: 对新创建对象的引用。 二是通过Assembly类的方法CreateInstance()。方法名和前一样,不过它不是静态方法。Assembly是在System.Reflection命名空间中。方法签名:public object CreateInstance(Type);(同样还有其他重载方法)返回值仍然是object,MSDN对返回值的描述是: 表示该类型的 Object 的实例,其区域性、参数、联编程序和激活属性设置为空引用(Visual Basic 中为 Nothing),并且 BindingFlags 设置为 Public 或 Instance,或者设置为空引用 (Nothing)(如果没有找到 typeName)。

java多线程

旧城冷巷雨未停 提交于 2020-04-04 06:16:05
1、进程与线程 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。 同步这个词是从英文synchronize(使同时发生)翻译过来的。我也不明白为什么要用这个很容易引起误解的词。既然大家都这么用,咱们也就只好这么将就。 线程同步的真实意思和字面意思恰好相反。线程同步的真实意思,其实是“排队”:几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作 。 因此,关于线程同步,需要牢牢记住的第一点是: 线程同步就是线程排队 。同步就是排队。线程同步的目的就是避免线程“同步”执行。这可真是个无聊的绕口令。 关于线程同步,需要牢牢记住的第二点是 “共享” 这两个字。 只有共享资源的读写访问才需要同步 。如果不是共享资源,那么就根本没有同步的必要。 关于线程同步,需要牢牢记住的第三点是,只有“ 变量 ”才需要同步访问。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共享资源,这样的情况下,线程之间就需要同步。

Object.defineProperty

心已入冬 提交于 2020-04-04 00:07:32
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Object.defineProperty</title> 6 </head> 7 <body> 8 <p>Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。</p> 9 <h4>语法:Object.defineProperty(obj, prop, descriptor)</h4> 10 <p><strong>参数</strong></p> 11 <p> 12 obj 需要定义属性的对象。<br> 13 prop 需被定义或修改的属性名。<br> 14 descriptor 需被定义或修改的属性的描述符。</p> 15 16 <pre> 17 var person={}; 18 19 Object.defineProperty(person,'age',{value:27,writable:false}); 20 21 console.log(person.age);//27 22 23 person.age=19; //设置不了writable:false 为true 则可以设置 24 25 console.log(person.age);/

C#基础:out和ref的区别

穿精又带淫゛_ 提交于 2020-04-03 14:21:38
public partial class 知识点 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //调用方法之前,传递参数的时候,参数可以先不初始化 //方法返回前,必须给out参数赋值,因为out参数值是不能通过实参传递到方法中的 private int outFun(out Object a) { string s = "other opt"; //a = Convert.ToInt32(a) + 1; //编译不通过,Use of unassigned out parameter 'a' a = 11;//方法返回前,必须给out参数赋值 return 1; } //必须在调用前,给ref参数初始化 //方法中不强制给ref参数赋值,因为实参已经通过ref参数传递进来,ref参数已经实例化过。 private int refFun(ref Object b) { //string s = b.ToString();//运行异常,空引用 //方法返回前,可以不给给ref参数赋值 b = Convert.ToInt32(b) + 1;//ref参数,成功传递到被调用的方法 return 1; } protected void Button2_Click(object

javascript数据类型判断

两盒软妹~` 提交于 2020-04-03 01:59:58
js的变量是松散类型,也就是不像java语言那样,需要在变量前面申明对象类型,加var后对变量进行申明,类型默认为undefined,当赋值后才确定变量类型。 js变量类型判别方式我所知道的有三种,第一种是typeof,第二种是instanceof,第三种是使用对象原型的tostring方法。 (1)第一种方法typeof: var a, b = 1, c = "1", d = false, e = [], f = {}, g = function(){}; console.log(typeof a); console.log(typeof b); console.log(typeof c); console.log(typeof d); console.log(typeof e); console.log(typeof f); console.log(typeof g); 控制台输出undefined,number,string,boolean,object,object,function. 为什么数组跟对象输出都是object? 我的理解是,数组跟对象是字面量写法,实际上它们等价于 var e = new Array(); var f = new Object(); 而引用类型的变量typeof都是输出object. 可以试一下 var a = /./; console.log

how to map more than one property from array of object in javascript

拟墨画扇 提交于 2020-04-02 07:50:34
问题 I have an array of Object as follows: var obj = [ {a: 1, b: 5, c: 9}, {a: 2, b: 6, c: 10}, {a: 3, b: 7, c: 11}, {a: 4, b: 8, c: 12} ]; I know about how to get single object using Array.map() like this. var result = obj.map(x=>x.a) This will give me following result [1, 2, 3, 4] But I want result like follows: [ {a: 1, b: 5}, {a: 2, b: 6}, {a: 3, b: 7}, {a: 4, b: 8} ] inshort from array of object i want to select only few fields(more than one) how to do that ? 回答1: You can use .map() with

how to map more than one property from array of object in javascript

时光毁灭记忆、已成空白 提交于 2020-04-02 07:49:07
问题 I have an array of Object as follows: var obj = [ {a: 1, b: 5, c: 9}, {a: 2, b: 6, c: 10}, {a: 3, b: 7, c: 11}, {a: 4, b: 8, c: 12} ]; I know about how to get single object using Array.map() like this. var result = obj.map(x=>x.a) This will give me following result [1, 2, 3, 4] But I want result like follows: [ {a: 1, b: 5}, {a: 2, b: 6}, {a: 3, b: 7}, {a: 4, b: 8} ] inshort from array of object i want to select only few fields(more than one) how to do that ? 回答1: You can use .map() with

how to map more than one property from array of object in javascript

元气小坏坏 提交于 2020-04-02 07:47:28
问题 I have an array of Object as follows: var obj = [ {a: 1, b: 5, c: 9}, {a: 2, b: 6, c: 10}, {a: 3, b: 7, c: 11}, {a: 4, b: 8, c: 12} ]; I know about how to get single object using Array.map() like this. var result = obj.map(x=>x.a) This will give me following result [1, 2, 3, 4] But I want result like follows: [ {a: 1, b: 5}, {a: 2, b: 6}, {a: 3, b: 7}, {a: 4, b: 8} ] inshort from array of object i want to select only few fields(more than one) how to do that ? 回答1: You can use .map() with