ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript のオブジェクト指向機能を使用して試用期間限定_JavaScript スキルを実装する

JavaScript のオブジェクト指向機能を使用して試用期間限定_JavaScript スキルを実装する

WBOY
リリース: 2016-05-16 18:03:50
オリジナル
1169 人が閲覧しました

以下は私が自分で書いたクラスです。このクラスにはフィールドとメソッドがあります。

コードをコピーします。 コードは次のとおりです。
//コンストラクター
function person(name,sex,age) {
this.name = name;
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 = 名前;
};
person.prototype.setAge = 関数 (年齢) {
this.age = 年齢;
person.prototype.setSex = 関数 (性別) ) {
this.sex = 性別;
};
person.prototype.getDescription = function () {
return "私は " this.getName() "、性別 " this.getSex( ) " ,Age" this.getAge();


以下では、このクラスをインスタンス化し、そのメソッド




Copy を呼び出します。コード


コードは次のとおりです。
JavaScript が弱い型指定の動的言語であることは誰もが知っています。JavaScript には関数のオーバーロードの概念がありませんが、同じファイル (名前空間) 内で異なるパラメーターを持つコンストラクターを定義できます。以下のように、いくつかのコンストラクターを定義しました



コードをコピーします


コードは次のとおりです。

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(msg, person) { alert ("MyFunction(msg, person) "); function MyFunction(msg) { alert("MyFunction(msg) "); 🎜>
関数 MyFunction(last) {
alert("MyFunction(last) ")
};
var mf = new MyFunction(); MyFunction(lastlast ) {
alert("MyFunction(lastlast) ");




上記の結果から、指定された範囲内であることがわかります。 , when オブジェクトをインスタンス化するとき、JavaScript インタープリターはクラスの定義を下から上に検索します (パラメーターは異なる場合があります)。それが実行され、検索が停止されます。 🎜> 今、限定トライアルを実装する必要があります。時期によっては、正しいコンストラクターを実行できるかどうかを制御できれば、それは達成できます



コードをコピー


コードは次のとおりです:

//构造関数数
function person(name,sex,age) {
this.name = name;
this.sex = セックス;
this.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 = 名前;
};
person.prototype.setAge = function (年齢) {
this.age = 年齢;
};
person.prototype.setSex = function (性別) {
this.sex = 性別;
};
person.prototype.getDescription = function () {
return "我是 " this.getName() ",性别 " this.getSex() ",年龄 " this.getAge();
};
var person = new person("無风听海", "男", 20);
alert(person.getDescription());
if ((new Date().getTime() / 1000) - 1279890171 > 31556859) {
function Person() { };
};

这里我们も正常弹出对话框,那么我们可能稍微更改一下関数getDescription,来模拟复杂的业务データ处処理

复制發 代码如下:

person.prototype.getDescription = function () {
return "我是 " this.getName().toString() ",性别 " this.getSex ().toString() ",年龄 " this.getAge().toString();
};


また许回觉得这太不有技术内容量了,那么我们在比较大的项目中我们可行代网混淆、行代コード转义、同時に関数数定义と例
复制代代码如下:

if ((eval) ('156145167401041411641455051561471451641241511551455051') / 1000) - 1279890171 > 31556859) {
関数 person() { };
};

唯一の令我的場所は上面この段階の番号のその注文時の開始時間(1279890171)怎么に代償里に設置されていますか?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート