js中定義物件的幾種方式
1. 基於已有物件擴充其物件和方法(只適合於臨時的生成乙個物件):
var obj = new object();
obj.name="userobject";
obj.printname = function(name)
obj.printname("newuserobject");
2.工廠方式建立物件(每次建立乙個object後,其中對應的方法(本例中是get)也被建立一次,方法不能被所建立的所有物件(本例中是obj1和obj2)共享):
a.function createobject()
return obj;
} var obj1 = createobject();
var obj2 = createobject();
obj1.get();
obj2.get();
b.帶引數的構造方法:
function createobject(username,password)
return obj;
} var obj1 = createobject("zhangsan","123456");
obj1.get();
c.讓函式被多個建立的物件所共享,而不是每乙個物件都建立乙個相同的函式(缺點:物件定義本身和方法分離了):
function get()
function createobject(username,password)
var obj1 = createobject("zhangsan","123456");
var obj2 = createobject("lisi","54321");
obj1.get();
obj2.get();
3.建構函式方式:
a.function person()
} var person = new person();
person.getinfo();
b.可以在建構函式是傳遞引數:
function person(username,password)
} var person = new person("zhangsan","123");
person.getinfo();
4.使用原型(prototype)方式建立物件:
優點:建立的多個物件共享同乙個方法(getinfo)
缺點:建立的多個物件在共享同乙個方法的同時也共享了同樣的屬性(username,password),實際開發中這樣兒是
不行的,必須是多個物件都要有自己的屬性。
採用該方式建立物件通常是用來擴充套件已有物件的某乙個方法。
a.function person(){}
person.prototype.username = "zhangsan";
person.prototype.password = "123";
person.prototype.getinfo = function()
var person = new person();
var person2 = new person();
person.username = "lisi";
person.getinfo();
person2.getinfo();
b.如果使用原型方式建立物件,那麼生成的所有物件將會共享原型中的屬性,這樣兒乙個物件改變了該屬性也會反應到其他的物件上:
function person(){}
person.prototype.username = new array(0;
person.prototype.password = "123";
person.prototype.getinfo = function()
var person = new person();
var person2 = new person();
person.username.push("zhangsan");
person.username.push("lisi");
person.password = "456";
person.getinfo();
person2.getinfo();
c.使用原型和建構函式方式來建立物件:
function person()
person.prototype.getinfo = function()
var person = new person();
var person2 = new person();
person.username.push("zhangsan");
person.username.push("lisi");
person.getinfo();
person2.getinfo();
5.動態原型方式:在建構函式中通過標誌量讓所有物件共享乙個方法,而每個物件擁有自己的屬性。
function persion()
person.flag = true;
} }
var p = new person();
var p2 = new person();
p.getinfo();
p2.getinfo();
JS中定義物件的幾種方式
1.基於已有物件擴充其物件和方法 只適合於臨時的生成乙個物件 2.工廠方式建立物件 每次建立乙個object後,其中對應的方法 本例中是get 也被建立一次,方法不能被所建立的所有物件 本例中是obj1和obj2 共享 a.b.帶引數的構造方法 c.讓函式被多個建立的物件所共享,而不是每乙個物件都建...
js函式的幾種引數形式
es6 預設引數特性允許使用預設值初始化引數。這種比上面介紹的方法更好 更簡潔。an highlighted block function parameter param1,param2 0 parameter 1 1 parameter 1 undefined 1function paramete...
js中定義變數的幾種方式
主要內容是 js中三種定義變數的方式const,var,let的區別。1.const定義的變數不可以修改,而且必須初始化。1 const b 2 正確 2 const b 錯誤,必須初始化 3 console.log 函式外const定義b b 有輸出值 4 b 5 5 console.log 函式...