面向对象,有很多函数没有的功能
例如 :
继承 子级面向对象可以继承父级面向对象的内容,减少冗余代码的书写
多态 在不同的情况下,面向对象可以执行实现不同的功能
面向对象,在封装的过程中,与函数有些类似
也是将 程序封装起来,重复的调用使用
面向对象,又有函数所部具备的功能
面向对象编程:
面向对象 中的 对象 指的就是 对象数据类型 object
面向对象 本质就是 针对 对象类型的 编程
对象中有属性和属性值,属性值可以是 各种数据类型 基本数据类型和引用数据类型,数据类型可以存储数据
同时还可以存储函数,函数中可以存储 要执行的程序
就可以将 程序需要的数据和程序内容,都存储在对象中
// 函数语法
function add(a, b) {
let res = 0;
for (let i = a; i <= b; i++) {
res += i;
}
return res;
}
console.log( add(1,100) ); //5050
// 对象语法:
const obj = {
start : 1,
end : 100,
// 直接写匿名函数,this指向是obj对象,this.start和this.end指向的是obj中的属性
// 写成箭头函数,this是父级程序的this,也就是obj的this
// 对象没有this,箭头函数的this是window,不能正确调用数据
fun: function() {
let res = 0;
for (let i = this.start; i <= this.end; i++) {
res += i;
}
return res;
}
}
console.log( obj.fun() ); //5050
创建对象的语法:
工厂模式: 创建内容相同的对象,只是参数不同
// 目前 通过 一个 函数 来 创建一个对象
// 对象中的数据,是 函数 输入的参数
// 返回值是 创建出来的对象
function createObj(start , end){
// 创建一个对象
const obj={};
// 给对象添加一个属性,属性名称是 start
// 这个属性的属性值 是 start 参数存储的数值
obj.start = start;
// 给对象添加一个属性,属性名称是 end
// 这个属性的属性值 是 end 参数存储的数值
obj.end = end;
// 给对象添加一个方法
obj.fun = function(){
let res = 0;
for (let i = this.start; i <= this.end; i++) {
res += i;
}
return res;
}
// 返回创建的对象
return obj;
}
// 创建一个求 1-100和的对象
const obj1 = createObj(1,100);
console.log(obj1.fun()); //5050
console.log(obj1); //Object
// 创建1个求50-100和的对象
const obj2 = createObj(50,100);
console.log(obj2.fun()); //3825
console.log(obj2); //Object
Comments | NOTHING