- 相關推薦
perl- javascript中class的機制
javascript是如何實現class的?下面YJBYS小編為大家講解!
FAQ
perl公眾號為什么要談javascript?
瀏覽器客戶端是通過javascript對前端數據進行處理,服務器端是沒有權利知道明文密碼的。要分析Webqq不懂javascript不行。再對加密過程進行比喻下,y是秘鑰1以及秘鑰2以及其他參數p的表達式。我們自己有一把鑰匙,服務器也有一把鑰匙,這2把鑰匙能開同一個門,但是2把鑰匙長得不一樣。
為什么只講class?
class便于代碼的管理,有了class讓開發庫成為了可能,只需要對外提供API就好了。 掌握語言的核心就是理解這門語言的class。
Javascript的class
正如perl5一樣,javascript 本身不支持面向對象,沒有訪問控制符public,private, 沒有定義類的關鍵字class。Javascript 還是很靈活的,用一些變通的方法,來制作類。
構建類
函數法的類,在函數中使用this,看到this就是class
function L() {
this.n = null;
this.e = 0;
this.d = null;
this.p = null;
this.q = null;
this.dmp1 = null;
this.dmq1 = null;
this.coeff = null
}
生成對象
函數法生成對象,使用new關鍵字
var obj=new L();
JS還支持以字面值形式:創建一個自定義對象:
{ property1:value1, property2:value2, propertyN:valueN }
//場景
var obj1={property1: value1, property2:value2}
return {property1: value1, property2:value2}
添加類的屬性和方法
使用prototype關鍵字,添加類的屬性和方法
function W(t) {
return t.modPowInt(this.e, this.n)
}
L.prototype.doPublic = W;
Object.creat() 方法
ECMAScript第5版提出了Object.creat() 方法。
匿名函數自調用,立即執行函數IIFE
sub{print "hello world"}->()
(function (){console.log("hello world")})();
(function (a,b){ var c=a+b; console.log(c);} (3,4));
(function (a,b){ var c=a+b; console.log(c);}) (3,4);
感覺javascript也是個比perl還變態的語言,什么怪異的寫法都有。
IIFE 的優勢
總是將代碼包裹成一個 IIFE(Immediately-Invoked Function Expression),用以創建獨立隔絕的定義域。這一舉措可防止全局命名空間被污染。
偷懶,不想額外定義函數
my $r=sub{use integer; ~time}->();
極簡主義 法
在這個基礎上,配合nodejs就能從任意js文件中提取所需函數。
【perl- javascript中class的機制】相關文章:
在Java中執行JavaScript代碼04-01
JavaScript中的with關鍵字03-25
JavaScript中的三種對象04-01
抽象語法樹在JavaScript中的應用03-25
JavaScript中push(),join() 函數實例詳解03-31
詳解JavaScript中的splice()使用方法04-01
淺談javascript中的單線程理解03-30