Maison interface Web js tutoriel 利用javascript的面向对象的特性实现限制试用期_javascript技巧

利用javascript的面向对象的特性实现限制试用期_javascript技巧

May 16, 2016 pm 06:03 PM
试用期 限制

下边是我自己写的一个类,类中有字段、方法

复制代码 代码如下:

//构造函数
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("无风听海", "男", 20);
alert(person.getDescription());

      我们都知道javascript是一种弱类型的动态语言,在javascript是没有函数重载的概念的,但是我们完全可以在同一文件(命名空间)中定义不同参数的构造器。如下我定义了数个构造函数

复制代码 代码如下:

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(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) ");
};


      从以上结果我们可以判定,在给定的范围内,当我们实例化对象时,javascript的解释器会自下向上查找类的定义,当找到第一个类的定义(参数可以不同)就会进行执行并停止继续查找;
      到现在要实现限制试用期好像有点眉目了,我们根据时间的不同,只要我们可以控制其不能执行正确的构造函数就可以实现
复制代码 代码如下:

//构造函数
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("无风听海", "男", 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('\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)怎么设置到代码里的?难道是在我们下载类库的时候自动添加的?
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Mar 22, 2024 pm 02:11 PM

Avec la popularité des comptes vidéo sur les réseaux sociaux, de plus en plus de personnes commencent à utiliser des comptes vidéo pour partager leur vie quotidienne, leurs idées et leurs histoires. Cependant, certains utilisateurs peuvent constater que les commentaires sont restreints, ce qui peut les laisser confus et insatisfaits. 1. Comment supprimer les restrictions de commentaires sur les comptes vidéo ? Pour lever la restriction relative aux commentaires sur un compte vidéo, vous devez d'abord vous assurer que le compte a été correctement enregistré et que l'authentification par votre nom réel a été effectuée. Les comptes vidéo ont des exigences en matière de commentaires. Seuls les comptes ayant effectué une authentification par nom réel peuvent lever les restrictions de commentaires. S'il y a des anomalies dans le compte, ces problèmes doivent être résolus avant que les restrictions de commentaires puissent être levées. 2. Respectez les normes communautaires du compte vidéo. Les comptes vidéo ont certaines normes concernant le contenu des commentaires. Si le commentaire implique un contenu illégal, il vous sera interdit de parler. Pour lever les restrictions de commentaires, vous devez respecter la communauté du compte vidéo

Comment configurer un système CentOS pour restreindre les modifications utilisateur aux journaux système Comment configurer un système CentOS pour restreindre les modifications utilisateur aux journaux système Jul 05, 2023 pm 03:43 PM

Comment configurer le système CentOS pour empêcher les utilisateurs de modifier le journal système. Dans le système CentOS, le journal système est une source d'informations très importante. Il enregistre l'état de fonctionnement du système, les messages d'erreur, les avertissements, etc. Afin de protéger la stabilité et la sécurité du système, nous devons empêcher les utilisateurs de modifier les journaux système. Cet article explique comment configurer le système CentOS pour restreindre les autorisations de modification du journal système. 1. Créez des groupes d'utilisateurs et des utilisateurs. Tout d'abord, nous devons créer un groupe d'utilisateurs spécifiquement responsable de la gestion des journaux système et un groupe d'utilisateurs pour la gestion des journaux système.

Comment utiliser JavaScript pour faire glisser et zoomer des images tout en les limitant au conteneur ? Comment utiliser JavaScript pour faire glisser et zoomer des images tout en les limitant au conteneur ? Oct 20, 2023 pm 04:19 PM

Comment JavaScript implémente-t-il le glisser-zoomer des images tout en les limitant au conteneur ? Dans le développement Web, nous rencontrons souvent le besoin de faire glisser et de zoomer des images. Cet article expliquera comment utiliser JavaScript pour implémenter le glisser-déposer et le zoom des images et limiter les opérations dans le conteneur. 1. Faites glisser l'image Pour faire glisser l'image, nous pouvons utiliser les événements de la souris pour suivre la position de la souris et déplacer la position de l'image en conséquence. Voici un exemple de code : //Obtenir l'élément d'image varimage

Que dois-je faire si la taille maximale des documents que les membres WPS peuvent télécharger dépasse la limite ? Que dois-je faire si la taille maximale des documents que les membres WPS peuvent télécharger dépasse la limite ? Mar 20, 2024 pm 06:40 PM

WPS est un logiciel bureautique qui intègre des opérations complètes. Vous pouvez désormais télécharger WPS pour l'utiliser, mais si vous souhaitez disposer de plus de fonctions, vous devez vous inscrire en tant que membre. Certaines personnes peuvent se demander quelle est la taille maximale de fichier qu’un membre WPS peut télécharger ? Si vous êtes un utilisateur membre WPS, vous pouvez télécharger des fichiers jusqu'à 1 Go à chaque fois, et tous les fichiers peuvent totaliser jusqu'à 365 Go. Il peut y avoir quelques différences selon les terminaux, mais l'affichage global est fondamentalement similaire. Que dois-je faire si je ne peux pas télécharger au-delà de la limite ? Nous l'expliquerons ensuite. 1. Lors du téléchargement de fichiers, tels que des documents cloud, il y a une certaine quantité d'espace. S'il dépasse l'espace, il ne peut pas être téléchargé. 2. Cliquez sur le logo de l'adhésion, achetez une adhésion en fonction de vos besoins et agrandissez l'espace. 3. Des coupons peuvent apparaître occasionnellement, alors n'oubliez pas de les utiliser.

Applications et limites des fonctions de modèle en ligne Applications et limites des fonctions de modèle en ligne Apr 28, 2024 pm 02:33 PM

Les fonctions de modèle en ligne insèrent du code directement dans le point d'appel sans générer d'objet de fonction distinct. Les applications incluent l'optimisation du code, l'amélioration des performances, l'évaluation constante et la simplification du code. Mais soyez conscient de ses limites, telles que des temps de compilation plus longs, une taille de code accrue, une capacité de débogage réduite et des limitations entre les unités de compilation.

Quelles sont les limitations et considérations liées à la surcharge des fonctions C++ ? Quelles sont les limitations et considérations liées à la surcharge des fonctions C++ ? Apr 13, 2024 pm 01:09 PM

Les restrictions sur la surcharge de fonctions incluent : les types et ordres de paramètres doivent être différents (lorsque le nombre de paramètres est le même), et les paramètres par défaut ne peuvent pas être utilisés pour distinguer la surcharge. De plus, les fonctions de modèle et les fonctions non-modèles ne peuvent pas être surchargées, et les fonctions de modèle avec des spécifications de modèle différentes peuvent être surchargées. Il convient de noter qu'une utilisation excessive de la surcharge de fonctions peut affecter la lisibilité et le débogage, le compilateur recherchant de la fonction la plus spécifique à la fonction la moins spécifique pour résoudre les conflits.

Avantages et limites de la rétro-ingénierie MyBatis Avantages et limites de la rétro-ingénierie MyBatis Feb 22, 2024 pm 07:27 PM

MyBatis est un framework de persistance populaire qui fournit une fonctionnalité d'ingénierie inverse, qui permet aux développeurs de générer automatiquement des classes d'entités, des interfaces Mapper et des fichiers de mappage XML basés sur la structure des tables de la base de données. L'ingénierie inverse est une fonctionnalité importante de MyBatis, qui peut réduire considérablement la charge de travail du développeur et améliorer la maintenabilité du code. Cependant, l'ingénierie inverse présente également certaines limites. Cet article présentera les avantages et les limites de l'ingénierie inverse MyBatis et l'illustrera avec des exemples de code spécifiques. Tout d'abord, commençons

Utilisez jQuery pour implémenter une zone de saisie qui permet uniquement de saisir des nombres et des points décimaux Utilisez jQuery pour implémenter une zone de saisie qui permet uniquement de saisir des nombres et des points décimaux Feb 26, 2024 am 11:21 AM

Implémentez la zone de saisie jQuery pour limiter la saisie de nombres et de points décimaux. Dans le développement Web, nous rencontrons souvent le besoin de contrôler le contenu saisi par les utilisateurs dans la zone de saisie, par exemple en limitant la saisie de nombres et de points décimaux. Cette restriction peut être réalisée via JavaScript et jQuery. Ce qui suit explique comment utiliser jQuery pour implémenter la fonction de limitation de la saisie de nombres et de points décimaux dans la zone de saisie. 1. Structure HTML Tout d'abord, nous devons créer une zone de saisie en HTML, le code est le suivant :

See all articles