Javascript构造函数

2018-01-06 19:14 更新

Javascript面向对象设计 - Javascript构造函数


构造函数只是一个与 new 一起使用来创建对象的函数。

我们使用了内置的JavaScript构造函数,如Object,Array和Function。

构造函数创建具有相同属性和方法的对象。

构造函数创建具有相同属性和方法的对象。...

构造函数只是以相同方式定义的函数。

构造函数只是以相同方式定义的函数。...

例子

例如,以下代码创建一个Book函数作为其构造函数:


function Book() { 
} 

例如,以下代码创建一个Book函数作为其构造函数:...

Book 是一个构造函数,因为它的第一个字母大写。

定义构造函数后,我们可以创建实例,如以下两个 Book 对象:


var book1 = new Book(); 
var book2 = new Book(); 


注意

当没有参数传递到构造函数中时,我们甚至可以省略括号:


var book1 = new Book; 
var book2 = new Book; 

book1和book2是Book类型的实例。

new 运算符自动创建给定类型和对象的对象返回它。

我们可以使用 instanceof 运算符来推断对象的类型。

以下代码显示了使用新创建的对象的 instanceof :


function Book() { 
} 

var book1 = new Book(); 
var book2 = new Book(); 

console.log(book1 instanceof Book);     // true 
console.log(book2 instanceof Book);     // true 

上面的代码生成以下结果。

上面的代码生成以下结果。...



笔记2

构造函数属性指向该构造函数。

构造函数属性指向该构造函数。...


function Book() { /*from w  ww  .j  ava 2 s. co  m*/
} 

var book1 = new Book(); 
var book2 = new Book(); 


console.log(book1.constructor === Book);     // true 
console.log(book2.constructor === Book);     // true 

上面的代码生成以下结果。

以下代码显示如何添加任何属性里面的构造函数:


function Book(name) { 
   this.name = name; 
   this.writeLine = function() { 
        console.log(this.name); 
    }; 
} 

新版本的 Book 构造函数接受单个命名参数, name ,并将其分配给this对象的name属性。

构造函数为对象定义一个 writeLine()方法。

在调用构造函数时, this 对象由 new 创建,它是构造函数类型的一个实例。

下面的代码显示了我们可以使用 Book 构造函数创建对象带有初始化的名称属性:


function Book(name) { // www. j  a v  a2s. c om
   this.name = name; 
   this.writeLine = function() { 
        console.log(this.name); 
    }; 
} 

var book1 = new Book("Javascript"); 
var book2 = new Book("CSS"); 

console.log(book1.name);           // "Javascript" 
console.log(book2.name);           // "CSS" 

book1.writeLine();                   // outputs "Javascript" 
book2.writeLine();                   // outputs "CSS" 

上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号