JavaScript语言编写

来源:互联网 发布:php卡密社区系统源码 编辑:程序博客网 时间:2024/05/18 01:22
JavaScript语言是一门面向对象的语言,但是JavaScript中并没有类的概念的。于是JavaScript采用构造函数的方式来模拟类的效果,即我们通过函数来创建对象。这也证明了函数在JavaScript中具有非常重要的地位。

一、简单例子:

[javascript] view plaincopyprint?
  1. var Book = function(name, price) {  
  2.     this.name = name;  
  3.     this.price = price;  
  4.     }  
  5. var java = new Book('Java', 82);  
[javascript] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. var Book = function(name, price) {  
  2.     this.name = name;  
  3.     this.price = price;  
  4.     }  
  5. var java = new Book('Java', 82);  

         普通函数与构造函数本质上没有任何区别,只是我们调用的方式不同而已,关键在于一个字 new

       调用构造函数:newfunction_name();

       调用普通函数:function_name();

       在函数中有一个this对象,this始终代表该函数的调用者。

       如果是构造函数,this就是构造出来的新对象。

       如果是普通函数,this就是 window 对象。

       如果使用new关键字调用,那么函数的 return语句不再起作用,因为这时还回的是 this对象。


下面的例子可以很清楚的看到这点:

[javascript] view plaincopyprint?
  1. var Book = function(name, price) {  
  2.       this.name = name;  
  3.       this.price = price;  
  4.       if (this == window) {  
  5.         return 'name = ' + name + ", price = " + price;  
  6.       }  
  7. else{  
  8.     alert("this book's name" + name +"price is "+ price)  
  9. }  
  10.     }  
  11.  var result = Book("Java", 100);  
  12.  alert(result);  
  13.  var book=new Book("Java", 100);  
[javascript] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. var Book = function(name, price) {  
  2.       this.name = name;  
  3.       this.price = price;  
  4.       if (this == window) {  
  5.         return 'name = ' + name + ", price = " + price;  
  6.       }  
  7. else{  
  8.     alert("this book's name" + name +"price is "+ price)  
  9. }  
  10.     }  
  11.  var result = Book("Java", 100);  
  12.  alert(result);  
  13.  var book=new Book("Java", 100);  

    运行结果如下。首先弹出:


          表示当前使用调用普通函数的方法调用Book()函数时this就是 window 对象。

    然后弹出的结果为:表示如果使用new关键字调用,this就是构造出来的新对象。


0 0
原创粉丝点击