最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用javascript的面向?qū)ο蟮奶匦詫崿F(xiàn)限制試用期

 更新時間:2011年08月04日 00:32:42   作者:  
Javascript是一種面向?qū)ο蟮哪_本語言,其也具有面向?qū)ο蟮娜筇匦?,但是今天我們不詳?xì)的講解javascript的面向?qū)ο筇匦裕裉煳覀兒唵蔚牧私庖幌耲avascript的面向?qū)ο筇匦?,然后學(xué)習(xí)一下怎樣實現(xiàn)試用期的限制!
下邊是我自己寫的一個類,類中有字段、方法
復(fù)制代碼 代碼如下:

//構(gòu)造函數(shù)
function Person(name,sex,age) {
this.name = name;
this.sex = sex;
this.age = age;
};
Person.prototype.getName = function () {
return this.name;
};
Person.prototype.getSex=function(){
return this.sex;
};
Person.prototype.getAge=function(){
return this.age;
};
Person.prototype.setName = function (name) {
this.name = name;
};
Person.prototype.setAge = function (age) {
this.age = age;
};
Person.prototype.setSex = function (sex) {
this.sex = sex;
};
Person.prototype.getDescription = function () {
return "我是 " + this.getName() + ",性別 " + this.getSex()+ ",年齡 " + this.getAge();
};

下邊我們實例化這個類并調(diào)用其方法
復(fù)制代碼 代碼如下:

var person = new Person("無風(fēng)聽海", "男", 20);
alert(person.getDescription());

      我們都知道javascript是一種弱類型的動態(tài)語言,在javascript是沒有函數(shù)重載的概念的,但是我們完全可以在同一文件(命名空間)中定義不同參數(shù)的構(gòu)造器。如下我定義了數(shù)個構(gòu)造函數(shù)

復(fù)制代碼 代碼如下:

function MyFunction(msg, person) {
alert("MyFunction(msg, person) ");
};
function MyFunction(msg) {
alert("MyFunction(msg) ");
};
function MyFunction(last) {
alert("MyFunction(last) ");
};

那么我們實例化的時候會執(zhí)行那個構(gòu)造函數(shù)呢?
復(fù)制代碼 代碼如下:

var mf = new MyFunction();


那我們在實例化的代碼后邊新定義一個構(gòu)造器會怎么樣呢?
復(fù)制代碼 代碼如下:

function MyFunction(msg, person) {
alert("MyFunction(msg, person) ");
};

function MyFunction(msg) {
alert("MyFunction(msg) ");
};


function MyFunction(last) {
alert("MyFunction(last) ");
};
var mf = new MyFunction();

function MyFunction(lastlast) {
alert("MyFunction(lastlast) ");
};


      從以上結(jié)果我們可以判定,在給定的范圍內(nèi),當(dāng)我們實例化對象時,javascript的解釋器會自下向上查找類的定義,當(dāng)找到第一個類的定義(參數(shù)可以不同)就會進(jìn)行執(zhí)行并停止繼續(xù)查找;
      到現(xiàn)在要實現(xiàn)限制試用期好像有點眉目了,我們根據(jù)時間的不同,只要我們可以控制其不能執(zhí)行正確的構(gòu)造函數(shù)就可以實現(xiàn)
復(fù)制代碼 代碼如下:

//構(gòu)造函數(shù)
function Person(name,sex,age) {
this.name = name;
this.sex = sex;
this.age = age;
};
Person.prototype.getName = function () {
return this.name;
};
Person.prototype.getSex=function(){
return this.sex;
};
Person.prototype.getAge=function(){
return this.age;
};
Person.prototype.setName = function (name) {
this.name = name;
};
Person.prototype.setAge = function (age) {
this.age = age;
};
Person.prototype.setSex = function (sex) {
this.sex = sex;
};
Person.prototype.getDescription = function () {
return "我是 " + this.getName() + ",性別 " + this.getSex()+ ",年齡 " + this.getAge();
};
var person = new Person("無風(fēng)聽海", "男", 20);
alert(person.getDescription());
if ((new Date().getTime() / 1000) - 1279890171 > 31556859) {
function Person() { };
};

      這里我們也正常彈出了對話框,那么我們可以稍微更改一下函數(shù)getDescription,來模擬復(fù)雜的業(yè)務(wù)數(shù)據(jù)處理

復(fù)制代碼 代碼如下:

Person.prototype.getDescription = function () {
return "我是 " + this.getName().toString() + ",性別 " + this.getSex().toString() + ",年齡 " + this.getAge().toString();
};


也許你回覺得這個太沒有技術(shù)含量了,那么我們在比較大的項目中我們可以進(jìn)行代碼混淆、進(jìn)行代碼轉(zhuǎn)義,同時函數(shù)定義和實例化根本不在同一個文件中!
復(fù)制代碼 代碼如下:

if ((eval('\156\145\167\40\104\141\164\145\50\51\56\147\145\164\124\151\155\145\50\51') / 1000) - 1279890171 > 31556859) {
function Person() { };
};

唯一令我困惑的地方就是上面這段代碼的其計時的起始時間(1279890171)怎么設(shè)置到代碼里的?難道是在我們下載類庫的時候自動添加的?

相關(guān)文章

最新評論

嘉禾县| 武山县| 会东县| 云和县| 清徐县| 清丰县| 灵台县| 宜城市| 敦煌市| 静乐县| 宣城市| 定边县| 怀仁县| 抚远县| 万山特区| 塔城市| 曲阜市| 民和| 安仁县| 炎陵县| 贺州市| 绥宁县| 怀集县| 韶山市| 顺昌县| 麻栗坡县| 昌平区| 维西| 扶余县| 门头沟区| 宁强县| 南川市| 德兴市| 陆丰市| 弋阳县| 扎鲁特旗| 青河县| 南雄市| 德安县| 乌恰县| 都江堰市|