new : 官方解釋: 如果在乙個函式前面帶上new來呼叫,那麼背地裡將會建立乙個連線到該函式的prototype的成員的新物件,同時this會被繫結到哪個新物件上;
new 是用來建立物件的;
當在自定義的function型別前使用new時,只有當函式無返回時才有區別;
當無返回值時:使用new可以獲得物件,不使用new就是執行乙個普通的函式;
當有返回值時:使用new與否結果都是一樣的。
只有型別才有prototype; 比如 object ,function,boolean以及自定義的function
物件才會有__proto__;並且物件的__proto__執行型別的prototype;
math有__proto__但是沒有prototype,因為它是物件,但不是型別。
var quo = function (str)//只有型別才能訪問到prototype
quo.prototype.getstatus = function ();
var myquo2 = new quo("c222");
var myquo = new quo("confused");
//物件的__proto__執行型別的prototype
myquo.__proto__.gstatus = function ()
alert(myquo.getstatus());
myquo.gstatus();
//原型被人改變了
myquo2.gstatus();
原型鏈模式是將方法新增到原型上面,模組模式是使用閉包將模擬class的格式;
/*模組模式*/var obj = function ();
function setname(n);
return
};/*原型鏈模式*/
var quo = function (str)
quo.prototype.getstatus = function ();
var myquo = new quo("confused");
alert(myquo.getstatus());
攻堅克難 Python語法糖
python中所謂的語法糖其實就是指裝飾器 裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能 閉包 其實就是函式b函式巢狀中,內部函式a使用了外部函式b的變數,則稱內部函式a為閉包 樣...