面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
对象的含义
对象可以是汽车,人,动物,文字,表单或者任何存在的事物等等。
对象有:
属性-------对象的某些特定的性质。
方法-------对象能做的事情。
事件-------能响应发生在对象上的事情。
我们可以通过创建一个人的对象来理解面向对象
人:
两只手,两只脚,一个头,还可以跑动。
手,脚,头,是人的属性,跑动是人的方法。
首先,我们来用最简单的方法创建一个对象
var person = { head: "one", hand: "two", foot: "two", run : function(){ console.log("running"); } }
这个方法一点都不实用,因为它是创建一个单独的对象,,而这个对象和任何常见的数据结构没有任何联系。
然后,我们用构造函数的方式创建一个对象
var Person = function(){//注意,首字母大写 this.head = "one", this.hand = "two", this.foot = "two", this.run = function(){ alert("running"); } } var Joan = new Person(); document.write(Joan.run())// "running"
这是用构造函数创建的对象,然后我们再加上一行代码看看
var Niki = new Person(); alert(Joan==Niki) //false;
是的,现在创建了是两个不同的对象实例。
在JavaScript中的每个函数都有一个prototype的属性.如果某个函数被用作构造函数,则这个属性会被自动通过new调用创建对象的原型
console.log(Joan)
可以看到有一个__proto__:Person,其中__proto__是Joan的原型链.它是指向Person的原型.
JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。
关于原型链的一些理解,在JavaScript高级程序设计 一书中写的非常详细。有兴趣的可以去看看,网上也有pdf的文档可以找到。不过建议还是买本书,支持原版嘛。
然后对prototype这个原型属性的任何更改能够应用于用new Person()构造的每一个实例对象,不管它是在更改之前还是更改后创建.为Person.prototype 添加新函数.具体如下:
var Person = function(){//注意,首字母大写 this.head = "one", this.hand = "two", this.foot = "two" } Person.prototype.run = function(){ alert("running"); } var Joan = new Person(); Joan.run()// "running" alert(Joan.__proto__===Person.prototype)//'true'
可以看到,在原型中创建方法是可以调用的,同时Joan的原型链是指向Person的原型的。
再看:
var Niki = new Person();//"runing" Person.prototype.run = function(){ alert("running running") } Joan.run()//"running running" Niki.run()//"running running"
看,修改Person的原型方法,所有被new Person()创建的对象实例中的方法都被修改了,因为所有实例中共用的是同一个原型方法run。这就是原型的一种应用。
这就是关于创建对象的一些理解。
写了好久。也不知道有没有错误。 如果有错误,欢迎各位大大指点。
下次再写面向对象继承方面的东西。
以上就是小编为大家带来的对Js OOP编程 创建对象的一些全面理解全部内容了,希望大家多多支持~
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]