构造函数
构造函数就是一个普通的函数,创建方式和普通函数没有区别
不同的是构造函数名习惯上首字母大写
普通函数是直接调用,而构造函数需要使用new关键字来调用
- 立刻创建一个新的对象
- 将新建的对象设置为函数中的 this(在构造函数中可以使用 this 来引用新建的对象)
- 逐行执行函数中的代码
- 将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类
我们将通过一个函数创建的对象,称为是该类的实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender;
}
Person.prototype.sayName = function () { alert('大家好,我是' + this.name); };
var person1 = new Person('李四', 18, '男'); var person2 = new Person('王五', 16, '女');
person1.sayName(); person2.sayName();
|
原型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
function MyClass() {}
MyClass.prototype.a = 123;
MyClass.prototype.sayHello = function () { alert('Hello'); };
var mc = new MyClass(); var mc2 = new MyClass();
mc2.a = '我是mc2中的a';
console.log(mc.a); console.log(mc2.a);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function MyClass() {}
MyClass.prototype.name = '我是原型中的名字';
var mc = new MyClass(); mc.age = 18;
console.log(mc.hasOwnProperty('name')); console.log(mc.hasOwnProperty('age'));
|
原文地址:博客园 https://www.cnblogs.com/meow999/p/12059917.html