1、
在函數內使用this.name(變量名)的方式賦值,當函數作為普通函數調用時,在函數外部可以直接訪問到,這是因為這里的this指向window:
function fn(){
var r = 2 ;
this.ss = 0;
this.sum=function(num1,num2){
return (num1+num2)*r;
};
}
fn();
//var b = new fn();
console.log(ss); //0
console.log(window.sum(1,2)); //6
console.log(sum(1,2)); //6
當函數作為方法函數調用時,情況又有所不同,這時候this指向發生變化,指向自身:
function fn(){
var r = 2 ;
this.ss = 0;
this.sum=function(num1,num2){
return (num1+num2)*r;
};
}
var b = new fn();
/*
console.log(ss); //error 報錯
console.log(window.sum(1,2)); //error 報錯
console.log(sum(1,2)); //error 報錯
*/
//可以通過實例訪問
console.log(b.ss); //0
console.log(b.sum(1,2)); //6
2、
var a ;
function fn2(){
var b = 0;
return b ;
};
a = fn2();
console.log(a); //0