文档章节

js面向对象的一些初级知识总结~~

乔康007
 乔康007
发布于 2013/02/24 21:27
字数 558
阅读 175
收藏 8

    javascript作为一门解释性脚本语言,有着其独特的魅力.既具有函数编程的特性,又具有面向对象的特征.以前的开发中,大多是使用了javascript的函数式编程,最近,发现其的面向对象也有一定的优势,在较为复杂的插件构建中,效果会很明显.

    其实,本质上javascript包括三部分,一部分是DOM编程,操作页面中的元素,一部分是BOM编程,获取浏览器的一些性能特征,最后,一部分也就是其核心,对ECMA-262规则的实现.现在,总结一下面向对象的学习.

    面向对象之一封装:

    原生形式的封装:

   创建了一个person的对象,这种方式比较繁琐.

var person = {
   name:'小兰',
   age : 23
};

alert(person.name);
     所以有了改进方式
var Person = function(name,age){
     return {
      name:name,
      age : age
     }
}
//创建了一个Person的类

//创建一个Person对象

var xiaoming = Person('小明',23);

alert(xiaoming.name);

    构造函数创建对象

  

var Person = function(name,age)
{
    this.name = name;
    this.age = age;
    eat = function(){
        alert('情人节怎么样勒?');
   }
 };

var xiaohong = new Person('小红',23);
alert(xiaohong.name);

var xiaolan = new Person('小兰',25);
alert(xiaolan.name);

但是,有个问题eat方法不属于Person这个类公有,每次创建对象还必须 为其开辟内存空间

alert(xiaohong.prototype.eat == xiaolan.prototype.eat)  false

   

 原型模式创建    每个js对象都有一个对其原型的内部引用

var Person = function(name,age)
{
    this.name = name;
    this.age = age;
};

prototype:原型上加的是对象不变的属性,和方法
Person.prototype.eat = function(){
   alert('this is one day~');
};

var beili = new Person('贝利',34);

var mingren = new Person('鸣人',23);


alert(beili.prototype.eat == mingren.prototype.eat) true

封装完成.

new 关键词,解释:js中使用new时会创建一个空对象,作为参数传给function,如果

function没有return时就会返回this,所以不要在生成实例时,使用return,这就是''this关键字

关联于其所在的作用域'

in 关键词 用于查看对象中的变量;

for(var prop in Person)
{
   alert(prop);
}

//结果:
name age eat
  这是js中的类和对象,对于js面向对象的封装,有个朋友推荐使用闭包~~不是很清楚!!

© 著作权归作者所有

乔康007
粉丝 2
博文 15
码字总数 7726
作品 0
海淀
程序员
私信 提问
加载中

评论(0)

好程序员web前端培训分享学习JavaScript

好程序员web前端培训分享学习JavaScript,我试着总结自己学习JavaScript的方法 JavaScript给人那种感觉的原因多半是因为它如下的特点: 1、本身知识很抽象、晦涩难懂,如:闭包、内置对象、D...

好程序员IT
2019/04/09
8
0
浅谈零基础新手学HTML5前端开发学习路线

  浅谈HTML5前端开发学习路线。学习HTML5开发先学学HTML、CSS3、JS这些基本的知识,HTML5学习入门的内容基本差不多,但是学习的成果却千差万别,这就是所谓的基础,所谓万丈高楼平地起,地...

Java编程语言基础入门博客
2017/04/04
0
0
PHP职业规划

PHP职业规划 初级PHP程序员 需要掌握知识点: HTML 熟练 CSS 熟练 Javascript 基础 jQuery 基础 SQL 基础 PHP 熟练 职业要求 能够独立进行网页制作与排版 能够制作简单的前端效果 或 将前端效...

染墨青衿
2014/12/22
6
0
零基础的网站开发初学者如何系统的学习?

A.学习背景 开始网站开发,起先是从手机网站的UBB语法开始的,也因此有了深入学习的兴趣。为了让学习的热情膨胀,我有意的培养这一爱好 ,定位了自己要成为一名优秀的网站开发员的目标。 作为...

李佳顺
2012/12/25
350
3
PHP学习路线图 最全PHP自学指南

对于广大零基础的PHP自学者,往往不知道如何系统的学习PHP,导致平白浪费了很多时间。本文将为大家带来最详细的php学习路线图,同时还会附上相应的权威教程,让广大PHP自学者少走许多弯路。 ...

W3Cschool小编
2018/04/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

南宁哪里可以开清洁服务费发票-中国-新闻网

南宁哪里可以开清洁服务费发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug B...

17095420210
16分钟前
57
0
0228 我的潘多拉

我的潘多拉 从一个故事说起。<br />从前,有个Java程序员非常喜欢写程序,喜欢研究源码,读英文文档。但是它在一家小公司里工作,公司的技术栈很陈旧。<br /> <br />单个系统代码中含有很多的...

李福春carter
今天
18
0
OSChina 周六乱弹 —— 屁会不会传染病毒

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《ハレハレヤ(朗朗晴天)》- 猫瑾 手机党少年们想听歌,请使劲儿戳(这里) @空格...

小小编辑
今天
77
1
两个值得注意的问题

对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部 变量进行操作.在定义类的成员变量时可以同时赋予初值,如 class A { int a=12; float b=12.56f; } 但是不可以这...

咔啡
今天
27
0
第三章 分布式服务框架的选择

1.大项目工程且多人维护的弊端 (1)项目团队协同成本高,业务响应越来越慢 (2)应用复杂度已超出人的认知负载(向杂乱的电线一样) (3)错误难于隔离(一个模块出错,整个系统挂掉) (4...

zxx901221
今天
68
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部