python的结构体(包括class,function 和class 实例)和javascript的结构体(Object和function)实现有些相似,也有些不同。
python的class对数据和函数的存储都是维绕着__dict__.
对象的属性和方法都存在里面。
而javascript的对象(Object或function)应该有两个hash存储数据,一个是prototype,一个是xxx(现在还不知道叫什么, 存储对象自己的方法和数据)。也是数据和方法混合存储。
对于对象的实例方法的搜索,二者也是差不多。
python中:
class Dog():
def spark(self):
print "spark"
dog = Dog()
dog.spark() #输出 spark
dog.__dict__中没有任何东西,当dog.spark调用时,python首先在dog__dict__中找spark,如果没有,就从class Dog中的__dict__中查找。
class dict中的函数没有copy到instance中去。
对于javascript:
function Dog(){}
Dog.prototype.spark = function(){alert('spark');}
dog = new Dog();
dog.spark(); #输出spark
如果修改class Dog的方法会影响dog的方法吗?
Dog.prototype.spark = function(){alert('spark2');}
dog.spark() #输出spark2
变了。
所以javascript的方法检索和python一样。
python和javascript感觉很像,
从python的class和function的定义方式, key:value, 就可以看出,python的核心就是dict。
而javascript的prototype也就是一个dict。
他们对于方法和数据都是混合存储的。不加”()“就是方法本身,加了“()”就是对方法进行调用。
这和ruby的实现方式就不一样了。
因为ruby是OO的纯爷们,内部区分了成员变量和方法,所以存储也是分开的iv_table和m_table.
而class实例化的过程中,又和javascript有点像。
javascript中prototype中定义的方法相当于ruby中的instance_methods。里面的东西是可以在函数检索的范围。不同的是,js的函数是copy的。ruby在class实例中只是保存了一个指向class的指针k_class.
js和ruby的class都是把函数分成了两部分,instance_methods(prototype)和class methods(对象私有方法)
分享到:
- 2009-03-05 16:42
- 浏览 2570
- 评论(0)
- 论坛回复 / 浏览 (0 / 4665)
- 查看更多
相关推荐
Learn how to turn raw data into rich, interactive web visualizations with the powerful combination of Python and JavaScript. With this hands-on guide, author Kyran Dale teaches you how build a basic ...
基于python+javascript实现农产品价格预测+LSTm+可视化源码+数据库sql.zip基于python+javascript实现农产品价格预测+LSTm+可视化源码+数据库sql.zip基于python+javascript实现农产品价格预测+LSTm+可视化源码+数据库...
基于python+JavaScript实现显示文件的二进制图表(软件构造大作业).zip基于基于python+JavaScript实现显示文件的二进制图表(软件构造大作业).zip基于python+JavaScript实现显示文件的二进制图表(软件构造大作业).zip...
软件工程课设-基于python和JavaScript的汽车充电管理系统设计源码.zip软件工程课设-基于python和JavaScript的汽车充电管理系统设计源码.zip软件工程课设-基于python和JavaScript的汽车充电管理系统设计源码.zip软件...
该项目是基于Python和JavaScript的医学知识可视化设计源码,共包含3811个文件,其中包括3739个JSON数据文件、26个TXT文本文件、14个Python源文件、10个Python字节码文件、6个XML配置文件、4个Markdown文档、4个...
Python+JavaScript+html编写的免费刷题工具,可以实现浏览器读取本地excel文件,自定义题库。 软件特色: 1.完全免费使用,没有任何广告插件; 2.实现了浏览器读取本地excel文件,非IE浏览器也可以轻松读取本地文件...
基于Python+JavaScript+vue+css的开源量化交易平台开发框架,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Python+JavaScript+vue+css的开源量化交易平台...
本源码提供了一个基于Python和Javascript的车展大屏演示前后端web应用的设计。项目包含46个文件,其中包括18个PNG文件、8个Python文件、7个CSS文件、7个JavaScript文件,以及用于版本控制和文档的文件。此外,还有1...
基于python+javaScript开发的轨道交通智慧客流分析预测+源码+运行文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python+javaScript开发...
在JavaScript的世界里,Python的语法特性常常让人向往,其中就包括了字符串的分片操作。Python的字符串分片功能强大且灵活,允许我们方便地截取字符串中的子串。为了解决JavaScript中缺乏类似功能的问题,开发者创建...
Python+javaScript+css开发使用Rasa开源框架创建的生猪疾病诊断系统(附带前端)+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ Python+javaScript+css开发...
本项目是一款结合Python和JavaScript技术实现的微信小程序PersonalDiet设计源码,包含123个文件,涵盖40个Python脚本、39个Python字节码文件、10个JavaScript脚本、10个JSON配置文件、8个WXSS样式表、7个WXML模板...
该项目是一款基于Python和JavaScript开发的都市定向赛移动端报名系统源码,总计包含225个文件,涵盖56个JavaScript文件、30个Python脚本、30个CSS样式表、26个PNG图片文件、18个SCSS样式表、17个LESS样式表、14个...
本项目是一款融合Python与JavaScript技术的智能插座能耗监测与设计方案,源码共计500个文件。其中,包含150个PNG图片文件、77个JavaScript文件、66个Python源代码文件、60个Python编译文件、33个JPG图片文件、25个...
该项目为河北青年艺术学院青年学院定制设计,整合了Python、JavaScript、HTML、CSS、PHP等多种编程语言,共计467个文件。其中,PNG图片文件117个,JavaScript文件80个,HTML文件58个,Python源文件54个,GIF图片文件...
该项目是一款针对SF漫画网站(http://comic.sfacg.com/)的Selenium爬虫设计源码,包含801个文件,涵盖433个Python脚本、191个...该源码支持Python和JavaScript两种编程语言,适用于对SF漫画内容进行自动化采集的用户。
该项目是一款基于HTML、Python和JavaScript的许昌小程序后台设计源码,包含294个文件,涵盖了73个HTML文件、72个Python脚本、57个压缩文件(可能包含其他格式)、26个JavaScript文件、14个CSS样式表、10个JSON配置...