js 高階指導

2021-09-01 10:00:22 字數 2819 閱讀 9005

[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 被殺之後人們在街頭 的真正鬥爭。黑人實際上是在爭取種族主義世界中存在的權利。毫無疑問,白人在科技領域的代表人數過多。在我所在的公司,我們開始就如...