知识点
- 类和对象的概念
- 创建对象
- 原型
- 字面量形式创建对象
类和对象的概念
- 类 : 是一种抽象的数据类型,是描述事物的概念;类是抽象的
- 那么通过哪些东西描述类的概念了,即:属性,行为
- 对象 : 是实际存在的;对象是类的实例化
- 类和对象的关系:通过类概念的描述实例化出实际存在的对象
创建对象
- 创建对象的基本三中方式 : Object(),构造函数,字面量的方式
- Object 构造函数创建一个对象包装器
var stu1 = new Object();
stu1.name = "hello word";
stu1.age = 18;
stu1.eat = function() {
alert("我很能吃");
}
- 构造函数创建(其实就是个普通的函数)
//构造函数(驼峰表示命名法)
function CreateAnimal(name,age) {
this.name = name;
this.age = age;
this.sleep = function() {
alert("睡觉");
}
}
var daxiang = new CreateAnimal('大象',100);
daxiang.sleep();
var dog = new CreateAnimal("单身狗",30);
alert(dog.name);
原型
- 原型编程 是 面向对象编程 的一种类型。它的 类 没有明确的定义,只是通过向其它的类中添加属性和方法来得到它,甚至偶尔使用空对象来创建类。
- 原型的作用 : 保存,共享 相同的代码(对象属性,行为)
- 访问原型的两种的方式:
- 1.构造函数的名字.prototype
- 2.对象.proto
CreateAnimal.prototype.sleep = function() {
alert("相同睡觉方法");
}
var daxiang = new CreateAnimal('大象',100);
console.log(daxiang);
console.log(daxiang.__proto__);
console.log(daxiang.__proto__.sleep);
原型相关知识点
- 通过原型创建 所有对象 都共享的属性
- constructor : 构造属性, 获取创建对象的构造函数
console.log(tea1.constructor);
- isPrototypeOf:判断对象是否指向该构造函数的原型对象
alert(Teacher.prototype.isPrototypeOf(tea1));
- hasOwnProperty
//判断对应的属性 是在原型中 还是在实例中
console.log(tea1.hasOwnProperty('age'));
console.log(Teacher.prototype.hasOwnProperty('age'));
字面量形式创建对象
- 通过字面量的形式 给原型对象赋值
Person.prototype = {
name:"小明",
age:15,
run:function () {
alert("run");
},
//constructor:Person
}
- 通过字面量创建的对象 方式 没有 constructor
- 重写原型对象
- 内置原型 添加新的方法
var str = new String();
String.prototype.addstring = function() {
return "我们放假了";
}
console.log(str.addstring());