[size=x-large]建立物件的方法
一:臨時物件建立
var object = new object();
object.name = "zhangsan";
object.age = "123";
var object1 = object;
var object2 = object;
alert(object1.name);
缺點:一次只能建立乙個物件,每次建立物件都要對屬性賦值一次。
二:工廠方法建立
function createobject()
return object;
}var object1=createobject();
var object2=createobject();
object1.info();
object2.info();
缺點:可以不停地建立物件,但是這樣每次建立物件的時候屬性和方法都建立一次,而我們希望屬性不同,而方法共享。
三:建構函式建立
function ***(name,age)
}var object1=new ***(「zhangsan」,23);
缺點:同三
四:原型(prototype)建立
function ***()
***.prototype.name=」zhangsan」;
***.prototype.age=」23」;
如果使用了原型方式物件,那麼生成的所有物件會共享原型中的屬性,這樣乙個物件改變了該屬性也會反應到其他物件當中。propotype是乙個原型物件,就相當於父類物件。所以
***.protype.info=function()相當於父類的乙個方法,子類***都繼承這個方法,所以子類***在建立物件的時候不會重複建立這個方法,但都可以共享(繼承)這個方法;
缺點:單純使用原型方式定義物件無法在建構函式中為屬性賦初值,只能在物件生成後改變屬性值,而且多個物件共享屬性值是不能容忍的。
五:原型+建構函式建立
function ***(name,age)
***.prototype.info=function()
var object1=new ***(「zhangsan」,23);
能夠實現屬性根據不同的物件不同,且能共享同樣的方法。這種方式可用。
六:動態原型+建構函式建立
function ***(name,age)}}
var object1=new ***("zhangsan",23);
var object2=new ***("lisi",24);
object1.info();//輸出"zhangsan",23
object2.info();//輸出"lisi",24
9物件繼承
一:物件冒充法
function person(name)
}function child(name,age)
}*/this.method(name);
delete this.method;
this.age=age;
this.sayage = function()
}var a = new person("zhangsan");
var b = new child("zhangsan",23);
a.info();//輸出zhangsan
b.info();//輸出zhangsan
b.sayage();//輸出23
二:call()繼承法
function person(name)
}function child(name,age)
}var a = new person("zhangsan");
var b = new child("zhangsan",23);
a.info();
b.info();
b.sayage();
function person(name)
}function child(name,age)
}var a = new person("zhangsan");
var b = new child("zhangsan",23);
a.info();
b.info();
b.sayage();
四:prototype繼承
function person()
person.prototype.name="zhangsan";
person.prototype.info=function()
function child()
child.prototype = new person();//將child類的父類物件賦值為person物件,即相當於繼承父類。
var a = new person();
var b = new child();
a.info();
b.info();
function person(name)
person.prototype.info=function()
function child(name,age)
child.prototype = new person();//通過原型物件來繼承方法,這裡因為只繼承方法,所以person()不需要傳引數
child.prototype.sayage = function()
var a = new person("zhangsan");
var b = new child("lisi",23);
a.info();
b.info();
b.sayage();[/size]
GnuPG高階指導(3)匯出私鑰
我有好幾個電腦,只想用一對金鑰 也就是說我需要把我的私鑰,放到那幾個電腦上。這樣,我就就可以在任意電腦上,解密和簽名以及其他。使用 臨時 公鑰把私鑰加密,然後傳到我的其他某個電腦,再解密。root debian8 gpg k root debian8 gpg k root gnupg pubring...
js 高階回顧js
1 js高階 什麼是面向過程的程式設計?比如輪播圖 我們第一件事情幹嘛 第二件事情幹嘛。什麼是物件導向的程式設計?比如輪播圖 先是分析裡面有哪些物件,再是分析如何實現物件的功能 成員 什麼是面向函式的程式設計?功能封裝,函式重複呼叫。要從面向過程的思路轉換成物件導向的程式設計 比較難的過程 2 js...
指導學習 指導
在過去的幾周中,此部落格有點安靜。在當今世界上發生的所有事情面前,沒有意識到共享css技巧的合適時機,而沒有承認在喬治 弗洛伊德 george floyd 被殺之後人們在街頭 的真正鬥爭。黑人實際上是在爭取種族主義世界中存在的權利。毫無疑問,白人在科技領域的代表人數過多。在我所在的公司,我們開始就如...