1.谈一谈我对面向对象的明白
一般历程式写法就是一步一步按着逻辑去写代码,而面向对象是以对象的头脑写代码,把一切的属性跟要领挂载在对象上,须要挪用的是new一个对象出来
我们一向都在运用对象:Array,Date
ar arr = new Array()
arr.length //对象下面的属性
arr.push() //对象下面的要领
面向对象编程(oop)特性
● 笼统:捉住核心题目
● 封装:只能经由历程对象来访问要领,如arr.push()
● 继续:从已有对象上继续出新的对象
● 多态:多对象的差别形状(在js顶用的比较少)
2.组织函数形式写法:面向对象的封装函数
组织函数:new背面挪用的函数叫做组织函数
<script>
function Show(){
this.name = 3;
}
Show.prototype.sum = function(){
alert(this.name)
};
var p1 = new Show();
p1.sum()
</script>
this指向题目
● 当new去挪用一个函数,this就是建立出来的对象而且函数的返回值直接就是this
面向对象的构成:要领
、属性
面向对象的要领(行动、操纵):函数、历程、动态的
//对象要领:对象下面的函数
arr.sort = function(){
alert("1")
}_
面向对象的属性(变量):状况、静态的
//对象下面的属性:对象下面的变量
var arr=[];
arr.number = 10;
alert(arr.nuber)
3.Prototype形式
假如建立的对象多了,那末一样的要领会存在许多份,为了进步机能,所以用.Prototype形式 (去改写对象下面共用的要领和属性,让共用的要领或许属性在内存中存在一份)
原型:类似于css中的class
一般:要领看作是css中的style
//原型写法
function Show(){
this.name = 3;
};
Show.prototype.showName = function(){
var This = this;
alert(This.name)
};
var p1 = new Show();
p1.showName()
4.体系中的对象运用
js就是基于原型的顺序
比方数组的push要领:
arr.push();
Array.prototype.push = function(){}
注重
:只管不要去修正或许增加体系对象下面的要领和属性
5.对象的继续
有时候封装好的函数并不一定在项目的任何地方都是能够直接复用,这时候就须要在原有的对象上新天生一个新的对象来满足当前的需求
什么是继续:
● 在原有对象的基础上,略作修正,获得一个新的对象
● 不影响原有对象的功用
怎样继续
属性的继续:
function 新的函数(){
createPerson.call(this,须要的属性,须要的属性)
}
要领的继续:
for(var attr in 原有函数){
新函数.prototype[attr] = 有函数.prototype[attr]
}