m.lom599.com_手机版乐白家网址_乐百家手机首页登录

设计模式之构造函数模式,javascript高级特性之

作者: 手机版乐白家网址  发布:2019-08-29

javascript中setInterval的用法,setinterval用法

javascript中的setInterval的函数主要是在制作动画或其他间隔性渲染(操作)效果时,对操作方法按照一定时间间隔进行调用的函数。

setInterval的表达式格式主要有:

setInterval(fnname,time,par1,par2,........parn);

setInterval(obj,fnname,time,par1,par2,......parn);

第一种是最常见的表达语法,其中fnname参数可以是一个匿名函数的引用或者是一个函数名,time是设定的调用faname的时间间隔,单位为毫秒,默认值为10毫秒,par1.......parn为可选参数,是传递给faname方法的参数。

第二种是使用对象方法的语法,faname参数是obj对象的方法,其他参数同第一种语法。

下面利用例子进行解释:

//普通语法的第一种写法

setInterval(function(){
    alert("我是setInterval方法打印结果");
  },3000) //每隔3秒打印一次

//普通语法的第二种写法

function alert1(){
    alert("我是setInterval方法打印结果")
  }
function alert2(str){
    alert(str);
  }
  setInterval(alert1,3000);
  setInterval("alert1()",3000);
  setInterval(alert2,3000,"我是setInterval方法打印结果");
  setInterval("alert1()",3000,"我是setInterval方法打印结果");

//对象方法写法

obj = new Object();//创建一个新的对象

obj.alert1 = function(){
    alert("我是setInterval方法打印结果");
  }

obj.alert2 = function(str){
    alert(str);
  }

setInterval(obj,alert1,3000);
setInterval(obj,alert2,3000,"我是setInterval方法打印结果");

setInterval一般都要跟clearInterval配合使用,clearInterval的作用是清除setInterval方法的调用,clearInterval的参数是setInterval的返回值,

var timer = setInterval(obj,alert1,3000);

clearInterval(timer);

以上所述就是本文的全部内容了,希望大家能够喜欢。

javascript中的setInterval的函数主要是在制作动画或其他间隔性渲染(操作)效果时,对操作方法按照...

javascript高级特性之"继承"

javaScript中并不存在继承的感念..但是我们可以根据javaScript的原型进行模拟JavaScript的继承:

1.写两个函数对象,将其中的一个函数赋值给另一个函数对象的原型:

 

 <script type=text/javascript>
   function A(){
  this.a = a;
  this.sayA = function(){
   alert(this is a.);
  }
 }
 var a = new A();

 function B(){
  this.b = b;
  this.sayB = function(){
   alert(this is b.);
  }
 }

 B.prototype = a;

 //测试:函数对象B就继承了函数对象A
 var b = new B();

 alert(b.b);
 b.sayB();

 alert(b.a);
 b.sayA();


  </script>

运行结果:

 

图片 1图片 2图片 3图片 4  

2.只继承于原型(定义A的函数对象,定义A函数对象的原型.定义B函数对象,把A对象的函数原型赋值给B的原型)

 

function A(){}

 A.prototype = {
  a : a,
  sayA : function(){
   alert(this is a.)
  }
 }

 function B(){
  this.b = b;
  this.sayB = function(){
   alert(this is b.);
  }
 }

 B.prototype = A.prototype;

 var b = new B();

 alert(b.b);
 b.sayB();

 alert(b.a);
 b.sayA();

3.实现多继承

 

 

<script type=text/javascript>
   function A(){}
 A.prototype = {
  a : a,
  sayA : function(){
   alert(this is a.)
  }
 }
 function B(){}

B.prototype = A.prototype;

B.prototype.b = b;
 B.prototype.sayB = function(){
  alert(this is b.)
 }


 var b = new B();
 alert(b.a);
 b.sayA();

 alert(b.b);
 b.sayB();



  </script>

* 分析得出这句话出问题了
* * 因为B.prototype多次调用
* * 出现的顺序有关系?谁先定义,谁被覆盖
* * 原型定义属性和方法的形式有关系?没有关系

* 条件:
* * 先实现函数对象B继承函数对象A的内容
* * 再利用原型为函数对象B增加属性和方法(分散形式)

 

 

javaScript中并不存在继承的感念..但是我们可以根据javaScript的原型进行模拟JavaScript的继承: 1.写两个函数对象,将其...

JavaScript:设计模式之构造函数模式

介绍

构造函数大家都很熟悉了,不过如果你是新手,还是有必要来了解一下什么叫构造函数的。构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。

基本用法

在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数。通过new关键字来调用定义的否早函数,你可以告诉JavaScript你要创建一个新对象并且新对象的成员声明都是构造函数里定义的。在构造函数内部,this关键字引用的是新创建的对象。基本用法如下:

function Car(model, year, miles) {
    this.model = model;
    this.year = year;
    this.miles = miles;
    this.output= function () {
        return this.model   走了   this.miles   公里;
    };
}

var tom= new Car(大叔, 2009, 20000);
var dudu= new Car(Dudu, 2010, 5000);

console.log(tom.output());
console.log(dudu.output());

上面的例子是个非常简单的构造函数模式,但是有点小问题。首先是使用继承很麻烦了,其次output()在每次创建对象的时候都重新定义了,最好的方法是让所有Car类型的实例都共享这个output()方法,这样如果有大批量的实例的话,就会节约很多内存。

解决这个问题,我们可以使用如下方式:

function Car(model, year, miles) {
    this.model = model;
    this.year = year;
    this.miles = miles;
    this.output= formatCar;
}

function formatCar() {
    return this.model   走了   this.miles   公里;
}

这个方式虽然可用,但是我们有如下更好的方式。

本文由m.lom599.com发布于手机版乐白家网址,转载请注明出处:设计模式之构造函数模式,javascript高级特性之

关键词: m.lom599.com