1.
var name = 'the window';
var obj =
a.prototype.n = 1;
var b = new a();
a.prototype=
object.prototype.a = function ()的時候建立了f,f的__proto__指向function的prototype,所以再function的prototype上面加的屬性f是可以訪問的,所以f.b();應該輸出b()。而function的prototype是object的乙個物件,這個物件是由object作為function產生的,所以這個這個物件的__proto__指向object的prototype,所以f.a();應該輸出a()。
var f = new f();所以f .__proto__指向f 的prototype,而f的的prototype是object的乙個物件,這個物件是由object作為function產生的,所以這個這個物件的__proto__指向object的prototype,所以f.a();應該輸出a()。而prototype和functiono的prototype沒有直接聯絡,所以f.b();應該會報錯找不到這個方法。
5.console.log('global begin:'+i);
var i = 1;
foo(1);
function foo(i)
var a;
console.log(typeof(a));//問輸出什麼
答案:function
理解:變數提公升先於函式提公升,所以先執行變數提公升a=undefined,然後再將a賦值給函式。
7.if(!(b in window))
var b = 1;
cnsole.log(b);//問輸出什麼
答案:undefined
理解:再es5裡面沒有塊作用域,所以再相當於再外面執行var b = 1;,由於變數提公升再**執行前window中就有了b屬性只是值為undefined,所以b in window為true,不執行判斷語句裡面的**,輸出undefined
8.var c = 1 ;
functiong c(c); c = 1; c(2);
9.var x = 10;
function fn() 報錯:找不到f2
理解:根據作用域,這裡會生成三個作用域:最外層作用域/fn 作用域/f2作用域。根據自己找不到到外層去找,第乙個外層能找到,第二個外層找不到;
注:如果第二個想輸出obj的f2,則function中要寫成console.log(this.f2); this指向呼叫這個函式的物件也就是obj。
遞迴 經典例子
題目 對於任意個數的字元,請用程式寫出其所有可能的排序!如abc的排序為abc acb bac bca cab cba 經典 我只是用了四個字元排序 如下 include using namespace std template inline void swap t a,t b template v...
makefile例子(經典)
相信在unix下程式設計的沒有不知道makefile的,剛開始學習unix平台 下的東西,了解了下makefile的製作,覺得有點東西可以記錄下。下面是乙個極其簡單的例子 現在我要編譯乙個hello world,需要如下三個檔案 1.print.h include void printhello 2...
深入理解js的幾個小例子
1 js的作用域,window物件 if a in window alert a 1 js的作用域是由函式劃分的 2 js的執行順序 var a 1,b function a x alert a 1 3 js引數 arguments 的含義 function b x,y,a b 1,2,3 10 4...