一、chrom裏面用drawImage無效,最後發現是由於圖片沒有加載就操做了。javascript
放在window.onload內便可、java
二、for in 問題c#
對於數組來講 for (var ele in arr) ele 是arr的索引數組
對於對象來講 for(var ele in obj) ele是obj的屬性名函數
3. js裏全部函數參數都是形參spa
var a = 1; function test(a){ a = a+1; } console.log(a); //1
4.關於對象複製的問題code
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對象
數組的淺複製blog
這種作法是錯的,由於javascript分原始類型與引用類型(與java、c#相似)。Array是引用類索引
型。array2獲得的是引用,因此對array1的修改會影響到array2。
2、 使用slice()
可以使用slice()進行復制,由於slice()返回也是數組。
var array1 = new Array("1","2","3");
var array2;
array2 = array1.slice(0);
array1.length = 0;
alert(array2); //返回一、二、3
3、 使用concat()
注意concat()返回的並非調用函數的Array,而是一個新的Array,因此能夠利用這一點進行復制。
var array1 = new Array("1","2","3"); var array2; array2 = array1.concat(); array1.length = 0; alert(array2); //返回一、二、3