這兩個方法的第乙個引數都為this指標指向的目標物件,他們的區別是第二個引數開始傳參的方式不同
call傳參:obj, arg2,arg3,.....
function func(a, b)
var obj = ;
func.call(obj, 2, 3); //6
function func()
func.call(2);
bind()
第乙個引數為this指標指向的目標物件,bind方法執行後返回的是乙個新函式
function func()
var obj = ;
var f = func.bind(obj);
f(); //張三
//在這個新的函式物件中,this被永久的繫結到了bind的第乙個引數上面,五六年後期這個函式被如何使用,this都不會改變
var obj27 = ;
obj2.f(); //張三
如果這三個方法都沒有提供第乙個引數或者是引數是this、null、undefined中的一種,那麼都將預設第乙個引數的為global物件
21、全域性變數和區域性變數
在函式內部宣告的變數為區域性變數,函式外部不能使用;
函式外部宣告的變數為當前js檔案的全域性變數
如果沒有var修飾的變數也為全域性變數,這個變數在哪都可以訪問
var a = 1;
function test()
test();
console.log(a); //1
console.log(b); // b is not defined
當函式內部的變數和全域性變數同名,函式內部就不會使用外部的變數
var g = 100;
function testg()
testg();
console.log(g); //100
22、函式的屬性和方法
1)length:表示函式希望接受的命名引數的個數
function test(a, b)
console.log(test.length); //2 ---->形參的個數
test();
console.log(test()); //hello
2)函式作為引數
function handle(fun)
handle(function(m));
3)函式作為返回值
function handle2()
}handle2(); //這返回的只是乙個函式名
handle2()(); //123
23、值傳遞和引用傳遞
1)基本資料型別的傳遞就是值傳遞 不會影響上乙個變數的值
var a = 1;
var b = a;
console.log(a, b); //1 1
b = 3;
console.log(a, b); //1 3
2)引用資料型別的傳遞就是址傳遞 兩個變數的值會變成一模一樣
var obj = ;
var obj2 = obj;
console.log(obj, obj2); //
obj2.gender = 'male';
console.log(obj, obj2); //
24、閉包(函式訪問上下文中的變數)
var arr = ;
for(var i = 0; i < 5; i++)
}arr[0](); //5
arr[1](); //5
arr[2](); //5
arr[3](); //5
arr[4](); //5
上述現象就是閉包現象
解決方法將上面的arr[i]改為下面的arr[i]
arr[i] = (function(num);
})(i);
HTML5前端開發入門之video audio標籤
1.什麼是video標籤?格式1 video 標籤的屬性 srcautoplay controls 用於告訴video標籤是否需要控制條 poster loop preload muted 靜音 width 寬度 height 高度 格式2 這個時候w3c未了解決這個問題,所以推出了第二個video...
前端開發 HTML5 新特性學習
html5是html最新的修訂版本,2014年10月由全球資訊網聯盟 w3c 完成標準制定,其設計目的是為了在移動裝置上支援多 全球資訊網的核心語言 標準通用標記語言下的乙個應用超文字標記語言 html 的第五次重大修改2014年10月29日,全球資訊網聯盟宣布,經過接近8年的艱苦努力,該標準規範終...
html5移動開發
canvas 3d 3d的繪圖功能支援 svg 向量圖支援 設計師要知道,的移動 旋轉 縮放?那都太基礎了,自己畫都是小case,至於怎麼用,好好想想吧 5.專為移動平台定製的表單元素 瀏覽器中出現的html5表單元素與對應的鍵盤 型別用途鍵盤 可以綜合使用gps wifi 手機等方式讓定位更為精準...