Javascript构造函数
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
上面的代码生成以下结果。
![](https://atts.w3cschool.cn/attachments/jimg/javascript_object_oriented/NOTE__BE2857BEB0E4E0A6C33F.png)
上面的代码生成以下结果。...
笔记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
上面的代码生成以下结果。
![](https://atts.w3cschool.cn/attachments/jimg/javascript_object_oriented/NOTE_2__BE2857BEB0E4E0A6C33F.png)
以下代码显示如何添加任何属性里面的构造函数:
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"
上面的代码生成以下结果。
![](https://atts.w3cschool.cn/attachments/jimg/javascript_object_oriented/NOTE_2__0F47FE0F1096D4A02D47.png)
更多建议: