1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > javascript 面向对象编程基础:封装

javascript 面向对象编程基础:封装

时间:2022-10-26 07:02:19

相关推荐

javascript 面向对象编程基础:封装

web前端|js教程

javascript 面向对象

web前端-js教程

很长一段时间以来(这里本人要幸灾乐祸地说),js是“一种点缀的作用,完成很有限的功能,诸如表单验证之类,其语言本身也一直被当作过程化的语言使用,很难完成复杂的功能。”。但是(这里本人要苦大仇深、痛心疾首地说),“而Ajax的出现使得复杂脚本成为必需的组成部分,这就对 JavaScript 程序设计提出了新的要求,很多Ajax应用开始利用JavaScript面向对象的性质进行开发,使逻辑更加清晰。事实上,JavaScript 提供了完善的机制来实现面向对象的开发思想。”。额的神啊,本来就不想学不敢学的,现在不得不硬着头皮学了。

这里关于对象就废话这么多了。我们都知道面向对象编程的三个主要特点是:封装、继承和多态。下面就围绕着这三个特点,记录一些学习心得。

好的,先从封装性开始介绍,众所周知,对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。Code is cheap.来看简单的代码:

3.5版本代刷网源码,ubuntu系统怎么启动,neo4j配置tomcat,python爬虫+网易,php五个常用函数,seo常用链接lzw

// 定义函数的方式定义类

function class1() {

// 类成员的定义及构造函数

// 这里class1 既是一个函数也是一个类。作为函数,它可以理解为类的构造函数, 负责初始化的工作。

}

办公设备 源码,vscode限制内存占用,看内存ubuntu,tomcat文件同步,浏览器js使用sqlite,怎么用爬虫爬取热点话题,打不开php网页,南宁seo外包优化网站,响应式培训网站模板,电商html5模板lzw

// 使用new操作符获得一个类的实例

var obj = new class1();

/* 抛开类的概念,从代码的形式上来看,class1 就是一个函数,那么是不是所有的函数都可以用new来操作呢?答案是肯定的。

在JavaScript 中,函数和类就是一个概念,当new 一个函数时,就会返回一个对象。如果这个函数中没有初始化类成员,那就会返回一个空的对象。

事实上,当new一个函数时,这个函数就是所代表类的构造函数,其中的所有代码都可以看作为了初始化一个对象而工作。用于表示类的函数也称之为构造器。

在JavaScript 中,每个对象可以看作是多个属性(方法)的集合

*/

html5 通讯录 源码,怎么恢复vscode的默认窗口,ubuntu实体机,tomcat如何刷缓存,爬虫资源电影,php网络任务,杭州抖音seo搜索优化排名,免费建立企业网站lzw

function test() {

alert( typeof (obj));

}

上面的代码定义了一个类class1,这就是js中简单的封装,下面我们看js如何定义“静态类”,

function class1() { // 构造函数

}

// 静态属性

class1.staticProperty = ” test ” ;

// 静态方法

class1.staticMethod = function () {

alert(class1.staticProperty);

}

function test() {

// 调用静态方法

class1.staticMethod();

alert( typeof (class1));

}

接着看“抽象类”:

/*

在传统面向对象语言中,抽象类中的虚方法必须先被声明,但可以在其他方法中被调用。

而在JavaScript 中,虚方法就可以看 该类中没有定义的方法,但已经通过this 指针使用了。

和传统面向对象不同的是,这里虚方法不需经过声明,而直接使用了。这些方法将在派生类

中实现

*/

// 定义extend 方法

Object.extend = function (destination, source) {

for (property in source) {

destination[property] = source[property];

}

return destination;

}

Object.prototype.extend = function (object) {

return Object.extend.apply( this , [ this , object]);

}

// 定义一个抽象基类base,无构造函数

function base() { }

base.prototype = {

initialize: function () {

this .oninit(); // 调用了一个虚方法

}

}

// 定义class1

function class1() {

// 构造函数

}

// 让class1继承于base 并实现其中的oninit方法

class1.prototype = ( new base()).extend({

oninit: function () { // 实现抽象基类中的oninit 虚方法

// oninit 函数的实现

}

});

我们看到,上面“让class1继承于base 并实现其中的oninit方法时”,使用了“继承”的概念,请留意。再来看一下执行的效果:

function test() {

var obj = new class1();

obj.oninit = function () { alert( ” test ” ); }

obj.oninit();

}

更多javascript 面向对象编程基础:封装相关文章请关注PHP中文网!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。