js 攻堅克難

2022-07-12 05:39:09 字數 1092 閱讀 9083

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為閉包 樣...