`
tyny
  • 浏览: 74458 次
  • 性别: Icon_minigender_1
  • 来自: 黄冈
社区版块
存档分类
最新评论

javascript的杂谈1

阅读更多

是一种基于对象的语言,对于实现继承,网上也有很多方法,但是感觉各种实现都没那么干净利落。

首先谈谈自己对javascript的对象简单的理解,相比较静态面向对象语言的元数据不可变,javascript中,一切基于对象,包括对象的原型链、构造函数等都是可变的(自己觉得应该是元数据的东西,当然他们如果他们不可变,javascript就不是javascript了)。这让自己以前习惯的处理对象关系方法无法适从,总觉得不踏实,毕竟他们是可变的。虽然可变有可变的好处,但是对于静态面向对象语言来说,继承都是语言级别的实现。而javascript中他们实现的途径各种各样,但是基本都是借助原型或者通过其他方式实现自己的继承关系。

对于javascript中的对象以及继承,自己觉得可能更适合基于规则或者契约来构建,毕竟他太灵活了,扩展性也很强。这种灵活和扩展带来的好处不用多说,但是问题也同样多,当然很多问题是人为造成的。灵活容易造成不规范不统一,造成交流困难。

对于javascript实现继承的复杂性,首先,继承的本质其实也是重用,而在javascript中,像比静态语言,javascript重用的不仅仅是结构,他还能重用状态[原型是一个对象],同时对于对象的任何属性(包括函数),都是可以脱离对象单独存在但是仍然可以访问当前对象上下文(他们本身就是对象,而且可以访问绑定的对象this),所以同样可以单独重用其他对象的属性和方法。大部分框架都提供多种扩展方法。也因为javascript中对象各种属性和方法的独立型,所以即便是在构造时规范好继承关系,通过对象的属性和方法添加删除修改,这种关系也很难说还是原来的关系。所以觉得这种关系只能用来规范或者作为设计约束,而实际上无非保证这种关系的持久性。同时对于面向对象中组合优于继承来看,扩展应该比继承容易得多,尤其对于javascript,相信include和extend对于很多人来并不陌生。当然继承也有他的用武之地,尤其是约束对象关系的时候。但是继承的实现,如果不是使用环境特别苛刻,继承的实现只是选择性问题。

分享到:
评论

相关推荐

    javascript中关于执行环境的杂谈

    ——这就要从JAVASCRIPT的解释器开始说起了:每当JAVASCRIPT解释器开始执行一个函数的时候,都会创建一个执行环境,并且还会产生一个和这个函数息息相关的变量对象,在这个执行环境中定义的一切变量或者函数都会被他...

    js_.rar_.doc_javascript_js

    js代码杂谈总结.doc,js 的总结,

    Ajax使用杂谈 也许也是乱弹

    随着Ajax技术的出现、盛行,本被忽视认为是二流编程语言的JavaScript脚本也开始了新的盛行,大量的JavaScript框架的出现如Microsoft Asp.Net Ajax、jQuery等。Ajax已经成为这些脚本框架必不可少的组成部分了,而且...

    IE和Firefox下event事件杂谈

    因为javascript的事件模型有三种,它们分别是NN4、IE4+和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,这里结合一些零碎的代码来说明如何做到event在IE4+和Firefox下的正常工作。首先看如下代码: 代码...

    码农第2期.pdf

    这一期的码农杂志主要关注javascript编程,对七大mvc框架创始人的专访,一些行业的前瞻性杂谈,另外还有一篇关于Nikola Tesla的八卦文章,很有意思,小心颠覆了你的世界观:);图灵给我们出的杂志~很棒~版权所有,...

    asp.net知识库

    完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算...

    leetcode中国-blog:我是HanpengChen,公众号【前端极客技术】。这里是我自己博客网站的仓库,主要包括前端、算法、设计模式等

    JavaScript Vue3 性能 浏览器和网络 CSS 前端实践技巧 Flutter 数据结构与算法 面试相关 设计模式 LeetCode系列 Python 机器学习 大数据 技术杂谈 最后 如果有疑问或者发现错误,可以提issue进行提问或勘误。 欢迎...

    jquery-easyui 1.5.2API

    ################################... 另外,建议Javascript基础不是太好的同学去找些书籍看看,书籍有很多,不过我只看过Javascript高级编程,现在应该已经出到第三版了,个人感觉挺好的,有需要的同学可以度娘一下!

    godbasin.github.io:被删除的前端博客-喜欢请star

    前端杂谈 工作杂谈 前端面试 小程序应用 深入理解小程序 全员学Vue 小程序开发月刊 打字稿相关 一步一步走向应用开发 前端入门 Vue2动画 D3.js-Tree实战笔记 Vue2笔记 纯前端的进军 ...

    refridge-client:与冰箱有关

    设置关于当前设置的一些杂谈。标准 获取一个支持此功能的编辑器插件; 或通过转到npm install -g standard安装CLI。React0.14-RC1 最血腥的边缘。 看到它与其他孩子的互动状况会很有趣。Webpack 为了便于热重装使用...

    sinokit:Vue.js 2.x 组件库、基础组件、业务组件、区块、模板(WIP)

    先建个 issue 讨论确定,有效沟通后再编码RelatedOther文档基于 docsify,模板样式参考 ve-charts工程使用 Lerna monorepo 管理,延伸了解:lerna workflow 杂谈项目管理方式使用 lerna 优雅地管理多个 package基于 ...

Global site tag (gtag.js) - Google Analytics