首页 > 其他 > 详细

面向对象的简单叙述

时间:2021-05-08 00:42:30      阅读:31      评论:0      收藏:0      [点我收藏+]
对象 {} 属性和方法的集合
 /*
 {x:10,y:function(){}}
 访问方式  obj.属性或方法    obj["x"]  对象里的属性和方法实际是字符串,[]可访问变量的属性
 
 遍历  for...in
 */
 var obj={a:1,b:2,c:3};
 for(var i in obj){
    console.log(i,obj[i])
 }
 //访问不存在的属性结果是undefined,调用不存在的方法,结果报错 x is not a function
 //删除 delete 对象.属性或方法名
function car(){
    //this: 谁调用函数,this指谁
    console.log(100)
}
car() //window.car()
function car(c,w){
    this.color=c;
    this.weight=w;
    console.log(this)
}
var x=new car("白色","1.5T");
var y=new car("黑色","1.55T");
//通过new F生成的对象叫做实例,F称为构造函数
//面向对象   实例有独立的特征
//构造函数的返回值:默认返回实例对象,return基本数据类型无效,return引用类型会导致new 无效

//普通函数与构造函数的区别: 
/* 函数名:构造函数名首字母通常大写
this:普通函数this通常指window
构造函数的this指new出来的实例
return: 普通函数return的结果作为函数的值
构造函数 return基本数据类型无效,return引用类型会导致new 无效
*/
function Human(color){
    this.color=color;
}
//共有方法放在prototype上
Human.prototype.say=function(){
    console.log(this.color)
}
var bMan=new Human("黑色");
var yMan=new Human("黄色");
var wMan=new Human("白色");
bMan.say();
wMan.say();
yMan.say();

dom.siblings();
Element.prototype.siblings=function(){
    var children=this.parentNode.children;
    var arr=[];
    for(var i=0;i<children.length;i++){
        if(children[i]!=this){
            arr.push(children[i])
        }
    }
    return arr;
}
/*
    构造函数的原型 Fun.prototype
    实例对象的_proto_    obj._proto_
    实例对象的_proto_属性,指向了构造函数的原型
    实例对象的prototype为undefined({}没有prototype属性)
    实例对象的constructor属性,是构造函数
*/
//所有实例共有的方法需要实现共享,prototype() 原型
//prototype:this指向实例
//自身属性: {}存在的属性
// 检测属性是否为对象的自身属性  obj.hasOwnProperty()

//属性和方法的访问方式
/*
先从自身查找属性,若不存在,则沿着_proto_向上一级查找,一直找到Object.prototype
查找过程中存在一条链式结构,成为原型链
对象的_proto_指向构造函数的原型  
*/

//闭包:内部函数引用了外部函数的变量或参数,当内部函数在外部函数的外面被调用时产生了闭包,(闭包是一种环境,是产生的一种环境不是声明的)
//特点:变量一直存在于内存中,不能被垃圾回收机制回收   原因:返回值存在一个外层函数中变量的引用
//垃圾回收:没有用的变量或函数(无法访问的)自动被GC回收
//缺陷: 内存泄漏  无法访问的变量无法被回收    大量应用闭包产生内存泄漏

面向对象的简单叙述

原文:https://www.cnblogs.com/zlf19971012/p/14742698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!