zoukankan      html  css  js  c++  java
  • 遇到雷点集合

    1、chrom里面用drawImage无效,最后发现是因为图片没有加载就操作了。

    放在window.onload内即可、

    2、for in 问题

      对于数组来说 for (var ele in arr) ele 是arr的索引

      对于对象来说 for(var ele in obj) ele是obj的属性名

    3. js里所有函数参数都是形参

    var a = 1;
    function test(a){
     a = a+1;
    }
    console.log(a); //1

    4.关于对象复制的问题

    var p1 = new Person();

    这个表达式做了什么?

    首先  new xxx()  就是在内存中创建了一个 object
    var p1 = xxx  那个 现在  p1 这个变量保存了 这个object的地址

    到这里开始 访问 p1 就是访问这个object

    p1.age = 25;  这个  就是  object.age = 25

    var p2 = p1;   //这个吧p1 的值  赋予  p2  (因为p1 是指向一个对象的变量  所以 p2 现在 也指向 这个变量)

    p2.age = 51;  这个就是 object。age = 51

    //一直到这里位置
    现在内存有一个对象  object(new Person()创建的)  2个变量  p1 p2 (都指向  那个 object)

    p2 = null;  /这里  p2 指向了null  但是p1 还是指向那个 object


    数组的浅复制

    一、 错误实现
    var array1 = new Array("1","2","3"); 
    var array2; 
    array2 = array1; 
    array1.length = 0; 
    alert(array2); //返回为空

    这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类

    型。array2得到的是引用,所以对array1的修改会影响到array2。

    二、 使用slice()

    可使用slice()进行复制,因为slice()返回也是数组。

    var array1 = new Array("1","2","3"); 
    var array2; 
    array2 = array1.slice(0); 
    array1.length = 0; 
    alert(array2); //返回1、2、3  

    三、 使用concat()

    注意concat()返回的并不是调用函数的Array,而是一个新的Array,所以可以利用这一点进行复制。

    var array1 = new Array("1","2","3"); 
    var array2; 
    array2 = array1.concat(); 
    array1.length = 0; 
    alert(array2); //返回1、2、3 

  • 相关阅读:
    SharePoint Framework (SPFx) 开发入门教程
    SharePoint 2013 Designer 入门教程
    SharePoint 2013 开发教程
    SharePoint 2013 入门教程
    SharePoint Online 部署SPFx Web部件
    SharePoint Online SPFx Web部件绑定数据
    SharePoint Online 创建SPFx客户端Web部件
    SharePoint Online 配置框架(SPFx)开发环境
    SharePoint Online 创建应用程序目录
    SharePoint Online 启用 IRM
  • 原文地址:https://www.cnblogs.com/cyanqq/p/4957291.html
Copyright © 2011-2022 走看看