JS prototype原型问题


var a = {
    test :  function () {
    }
}

function b() {   // b 构造函数
    this.j=3;
}

var t = new b(); //T实例

b.prototype ; // b 的原型对象
b.__proto__; //?有没有这种写法
t.__proto__; //?有没有这种写法
t.prototype; //?有没有这种写法
a.prototype; //?有没有这种写法
a.__proto__; //?有没有这种写法

想问一下什么时候用prototype 然后b.__proto__; //?有没有这种写法
t.__proto__; //?有没有这种写法
t.prototype; //?有没有这种写法
a.prototype; //?有没有这种写法
a.__proto__; //?有没有这种写法


初始状态只有函数有prototype.
实例的__proto__指向其构造函数的prototype.
函数也有__proto__因为函数是Function函数构造函数的实例。


除去自行添加的情况。。。。

所有对象(除了非常特殊的一个,可不考虑)都有__proto__ 属性,只有函数才具有prototype属性。
所以只有t.prototypea.prototype是没有的。其他都是有的。

function b() {};
var t = new b();

这样的代码,可以看作是b是类,tb类的一个实例。
比如

// class Object() {}
var obj = new Object();
var obj2 = new Object();

这样objObject类的一个实例。在面向对象的编程中,一些具有共性的对象叫做一个类,因此这些对象有一些相同的方法。所以可以在定义类的时候定义这些具有共性的方法,某种类的实例可以直接访问调用些方法。比如obj.toString(); obj2.toSTring()。显然如果是obj.toString = function(){} 这样定义,是不好的。

JS中给出的方案是,在类(e.g.Object)中定义一个prototype属性,然后在类的实例中定义一个__proto__属性。类的方法定义在prototype,在创建实例的时候__proto__ 赋值为这个值。(e.g. obj.__proto__ = Object.prototype)。 当写下obj.toString()的时候,解释器就可以通过obj.__proto__.toString访问到在类Object.prototype中定义的方法。实现了类中方法的共享。所以下面的代码是可以的。

Object.prototype.myToString = function(){ return "A Object";}
obj.myToString(); // "A Object"
obj2.myToString(); 

上述所说的类(e.g.Ojbect)在JS里面和函数合二为一了。所有对象都有__proto__属性,只有函数才有prototype属性。

继承,以及存在的问题。。。略

JS里的一些语法糖(简写);

var obj = {};
//等价与
var obj = new Object();

function fn() {};
var fn = new Function();



相关阅读:
关于移动端localstorage 手机浏览器无效果
PHP中的$_REQUEST和$_POST|$_GET有什么区别??
react这个错是什么意思,要怎么解决
.htaccess 文件导致的自动加载问题
百度数据图谱的插件
用angularjs怎么获取到data对象里的HeWeather data service 3.0对象里的数据?
router-link 阻止默认的点击事件么?
点击按钮的跳转ui-sref后进入的页面报错,是什么原因呢?
本地测试需要htpps,怎么解决?
jdk1.8关于持久化的api是哪个?为什么在javax包下找不到persistence这个类?
vue里模版如何转字符串
出现resolve-url-loader cannot operate:source-map error
css实现六边形带图片展示
关于react 一个问题(Render HTML string w/JSX expression)
gulp合并js代码问题
mysql怎么实现mssql的if exists() begin...end功能?
关于mongodb多表和检索查询
brew install php56-redis 安装错误
vue2.0时如何结合highlight.js实现代码高亮的?
程序怎么判断windows的隐藏文件/文件夹?



快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 伤痛,是最好的成长 如你不在乎,就别再陪我装下去 花语除夕,安然流年 易?难400字 乡镇公务员试用期满转正个人工作总结 借问酒家何处有,牧童遥指杏花村。”心情正如唐代大诗人杜牧的名诗一样 贯彻落实十八届三中全会精神心得体会范本 2015读出卖笑的孩子个人心得感想 小学六年级作文800字:一只叫小白的小狗 制药公司2015年度“质量月”活动总结 身边的一件事作文150字 某人的那人 那个坚强的男孩??韩庚 为妈妈做-件力所能及的事 很有道理一句话 谁是C罗心中的大神 令我后悔的一件事作文300字 我在靠近,你却在远离 委屈的爱作文300字 教师学困生辅导计划 中国的文学作文1600字 生活杂感(六十) 一抹夕阳、似水流年 小学六年级作文550字:谁陪我听花开的声音 党的十七大心得体会:理想照耀征程 删除了你的人,碎了我的心 儿童家具广告词 预付款申请单 山旯旯的诗意情怀 橘子老虎 学习型党组织建设工作总结 恋恋风尘~轮回中的悲伤《写给我最深爱的她》 送大德讲时河东徐明府招 可爱的秋天350字 寻找我的他,可是我就是找不到他,谁会是我的他 奋斗的足迹 康复医院上半年工作总结 夜来风雨 雨寄相思梦 关于快乐的寒假作文200字 新年短信祝福语2017、春节微信祝福语、新年贺卡祝福句子 一路走来我很幸福!作文800字 2013年10月预备党员思想汇报:人生价值观 中国四大名著读后感_我读《水浒传》 孝敬爸爸 春闹 春,是一只鸟 游览西藏的布达拉宫作文450字 电子专员英语求职信 伊本才女散文 夜半无人私语时 二

Copyright © 2016 phpStudy |