有时候JS类似于面向对象,有时候JS又不是面向对象。

因为js中没有类和对象的概念,类和对象都是通过函数闭包来模拟出来的。

1、下面我们先写一段js,如下

function Cat(){

this.Name=\'Mimi\';

this.Age=\'2\';

this.sayHello=function(){

alert(\'my name is\'+this.name+\'I\'m\'+this.Age);

}

}

</script>

可以看到 在此js中定义了一个Cat方法。

2、下面可以使用直接调用

function Cat(){
    this.Name=\’Mimi\’;
    this.Age=\’2\’;

    this.sayHello=function(){
      alert(\’my name is\’+this.name+\’I\’m\’+this.Age);
   }
}

Cat();

3、但是,当我们这样使用时,意义就不一样了。

<script type=\'text/javascript\'>
function Cat(){
this.Name=\'Mimi\';
this.Age=\'2\';

this.sayHello=function(){
alert(\'my name is\'+this.name+\'I\'m\'+this.Age);
}
}

var q=new Cat();
q.sayHello();
</script>
我们可以看到,我们用了new关键字后,就把Cat看成了一个类。而q成了一个对象
运行结果也会alert出内容。
这就是js中,面向对象了
我们可以看到,上面Cat()中有一个匿名方法。而外部的p可以通过new来调用此匿名函数。
当函数带上参数时,就可以理解为构造函数了
<script type=\'text/javascript\'>
function Kity(name,age,gender){
this.Name=name;
this.Age=age;
this.Gender=gender;

this.sayHi=function(){
alert(this.Name+this.Age+this.Gender);
}
}

var zs=new Kity(\'Nini\',2,\'女\');
zs.sayHi();
</script>

评论被关闭。