js代码中可以有java的对象吗_js原型对象与Java类的区别
标签:
在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同。
首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法;而原型对象本身就是一个方法体,它可以直接运行。二者在构造对象的过程中,js可以扮演两种角色,一个可以将原型对象当方法来使用,才接触js时,都是以这种形式来使用,即万物皆方法体,像c;另一个是模仿面向对象的特性,为原型对象定义属性,运用构造器时,将构造器构造的对象的指针指通过原型链指向原型对象的属性,从而实现面向对象编程的形式。其实,做个有趣的实验,定义一个原型对象,为其定义一些属性,也为其定义可自动执行的部分代码,如:
function test(){
//定义两个属性
this.pro1="属性1";
this.pro2="属性2";
//再定义部分可自动执行的代码
alert("原型对象中代码被执行了!");
}
test(); //当方法体来用,可以执行内部代码,但属性无法访问
alert(new test().pro1); //方法体在构造时内部代码执行了一遍,并且实例对象通过原型链的生成可以访问其中属性
而这点,允许混杂的现象在Java类中是绝对不被允许的,这也可以体现为什么js是基于对象,而不能被称为绝对规范的完全面向对象,与其说js“模仿”了面向对象的使用思想,我更倾向于说它是借用了面向对象的思想。如果一种新的优秀的编程思想被创造出来,js一样能凭借它的灵活模仿出来,而那些强类型的编程语言很可能就只能。。。。。。
标签:
js代码中可以有java的对象吗_js原型对象与Java类的区别相关推荐
- java keypress事件_javaweb开发-js代码中keypress事件调用判断,取得keyCode值
在js代码中的一段代码,keypress事件调用的函数中的代码. var keyCode = event.keyCode ? event.keyCode : event.which ? event.w ...
- [js] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?
[js] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走? 在浏览器环境下JS 解析器解析到未定义变量时,会抛出 Uncaught ReferenceError 错误,JS 引擎会停 ...
- js代码中实现页面跳转的几种方式
js代码中实现页面跳转的几种方式 注:jquery的$.get(),$.post(),$.ajax()都不会使页面发送跳转,因为其本质都是ajax请求. 第一种: <script languag ...
- 细说JavaScript对象(2):原型对象
JavaScript 并没有类继承模型,而是使用原型对象 prototype 进行原型式继承. 尽管人们经常将此看做是 JavaScript 的一个缺点,然而事实上,原型式继承比传统的类继承模型要更加 ...
- ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式
ES6 (二十二)Class 的继承.extends关键字.super 关键字(函数调用(constructor).对象(父类原型对象)).原型对象(原型链).Mixin 模式 文章目录 ES6 (二 ...
- jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...
本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...
- 如何在 JS 代码中消灭 for 循环
Edit: 在我入职上一家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.至于为什么我提倡避免 fo ...
- jsfor循环终止_详解如何在JS代码中消灭for循环
Edit: 在我入职第三家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.本文并不完美,其中递归的部 ...
- 如何在js代码中消灭for循环实例详解
转载自:https://www.jb51.net/article/144662.htm 补充一:看来很多人没看完文章就评论了.我在文章末尾说了,是不写 for 循环,不是不用 for 循环.简单陈述不 ...
最新文章
- 如何理解naive Bayes
- BIOS误删win10引导 delete boot option如何恢复
- 大寨鸿蒙系统的电器,华为传来两个好消息,鸿蒙OS大时代将于6月2日正式开启...
- 信息系统项目管理08——项目质量管理
- es文件浏览器怎么用_ES文件浏览器——安卓第一文件管理APP
- java free hd 798,[https://www.798ziyuan.com/]Java入门级项目全程实录V2.0
- 03.【python基础二】if判断语句之if-else、elif、if嵌套
- sourcetree教程(去掉注册账号)
- 从两句偈语开始写的一首诗《看花》,以及创造思路、过程
- Java程序设计-书上重点总结
- 【软件定义汽车】【硬件篇】特斯拉FSD芯片
- 双目立体匹配流程详解
- unity2D物体朝向并靠近鼠标位置,击退效果
- matlab中clear的功能,matlab中clc,close,close all,clear,clear all作用区别
- java联机_Java实现简易联网坦克对战小游戏
- 剖析ASP.NET WebAPI 转化 ActionResult 为 HttpResponse的机制
- AssetBundle-AssetBundle Brower Tool
- 个人邮箱申请邮箱会员怎么注册,成为会员后有什么好处?
- 响应式HTML网页开发,web开发中的响应式网页设计
- 计算机二级office考试试题分布,计算机二级MS-OFFICE考试ECEL题型汇总附答案.pdf