1、什么是对象
对象:是类的实例 万事万物皆对象.
类:具有相同特征(属性)和行为(方法)的事物的抽象 类是对象的类型.
区分对象的黄金法则:当我们看到某个概念的时候如果每个人 的大脑中想到的都是同一个事物的时候,此时就是对象;反之则是类。具体到某一个事物
2、内置类
js中没有类,是通过构造函数模拟类。
js中是系统提供的内置类。例如:String Img Date RegExp Array Number
根类
Object我们js中最上层的类,所有类继承与它
创建对象
方式1:
var Cat = { name : '', color : '',run:function(){} }
方式2:
var cat1 = {}; // 创建一个空对象
cat1.name = "大毛"; // 按照原型对象的属性赋值
cat1.color = "黄色";
cat1.run = function(){}
var cat2 = {};
cat2.name = "二毛";
cat2.color = "黑色";
cat1.run = function(){}
方式3:(工厂模式创建对象)
function person(age,name,weight){
var obj = {
name1:name,
age1:age,
weight1:weight,
say:function(){
console.log('hello');
},
}
return obj;
}
** **使用对象:** **
var jinglei = person(18,'景磊',158);
console.log(jinglei.name1);
jinglei.say();
构造函数
其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。
function person(age,name,weight){
var obj = {
name1:name,
age1:age,
weight1:weight,
say:function(){
console.log('hello');
},
}
return obj;
}
var jinglei = person(18,'景磊',158);
console.log(jinglei.name1);
jinglei.say();
原型
js规定,每一个构造函数都有一个prototype属性
prototype:我们可以找到当前类的原型,并且我们可以通过原型给当前类添加属性与方法
通常我们可以把一些不变的方法与属性添加上
function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender = gender;
}
Person.prototype.type = '人';
console.log(wen.type);
// 原型链
// 面向对象的三大特征:封装,继承。多态