javascript 原型查找 再次试探~
前言
我们知道 对象字面量 是没有能力去查找自己原型的,它必须通过他的构造器来完成原型查找,
1本文将测试以下
a,new这个对象 之前/之后 改变构造器的原型,使其指向其他构造器的原型
b,new这个对象 之前/之后 改变构造器的原型,使其指向其他构造器的构造的对象字面量
a(1)情况
function B(){
this.name = 'B';
this.age = 12;
}
B.prototype = {
sayname:"i am B"
};
function A(){
this.name = 'a';
}
A.prototype = {
sayname:"i am a"
}
A.prototype= B.prototype;
var a = new A();
console.log(a);
debugger;

可以看到成功更改了a的prototype,
下面a2情况
function B(){
this.name = 'B';
this.age =12;
}
B.prototype = {
sayname:"i am B"
};
function A(){
this.name = 'a';
}
A.prototype = {
sayname:"i am a"
}
var a = new A();
A.prototype= B.prototype;
console.log(a);
debugger;

可以看到 没能修改a的prototype
b1情况
function B(){
this.name = 'B';
this.age =12;
}
B.prototype = {
sayname:"i am B"
};
function A(){
this.name = 'a';
}
A.prototype = {
sayname:"i am a"
};
A.prototype= new B();
//A.prototype.constructor=A;
// var s = A.prototype.constructor;
var a = new A();
console.log(a);
// console.log(s);
debugger;

b1 补充 (正确的示例)
function B(){
this.name = 'B';
this.age =12;
}
B.prototype = {
sayname:"i am B"
};
function A(){
this.name = 'a';
}
A.prototype = {
sayname:"i am a"
};
A.prototype= new B();
A.prototype.constructor=A;
var s = A.prototype.constructor;
var a = new A();
console.log(a);
console.log(s);
debugger;

最后b2情况
function B(){
this.name = 'B';
this.age =12;
}
B.prototype = {
sayname:"i am B"
};
function A(){
this.name = 'a';
}
A.prototype = {
sayname:"i am a"
};
var a = new A();
A.prototype= new B();
A.prototype.constructor=A;
var s = A.prototype.constructor;
console.log(a);
console.log(s);
debugger;

可以看到没有修改成功,!所以我们得出结论,对象自己内部可以指向对应的prototype地址,只是这个API,js没有提供,而游览器提供的_proto_则可以,只不过这个只能用于游览器调试,js为什么梅伊欧提供,我猜应该是他觉得对象的原型链查找是自动的,没必要你手动指定,比如 alert(a.name),如果对象a没有name属相,它会自动去找他的上级原型,所以我们只需要再用构造器构造这个对象之前 手动指定好它的原型指向哪里,用的时候由对象自动完成查找!!!!!
javascript 原型查找 再次试探~的更多相关文章
- 理解JavaScript原型
Javascript原型总会给人产生一些困惑,无论是经验丰富的专家,还是作者自己也时常表现出对这个概念某些有限的理解,我认为这样的困惑在我们一开始接触原型时就已经产生了,它们常常和new.constr ...
- JavaScript 原型的深入指南
摘要: 理解prototype. 原文:JavaScript 原型的深入指南 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 不学会怎么处理对象,你在 JavaScript 道路就就走 ...
- JavaScript原型OOP——你上车了吗?
.title-bar { width: 80%; height: 35px; padding-left: 35px; color: white; line-height: 35px; font-siz ...
- 深入理解javascript原型和闭包(3)——prototype原型
既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名.如果它还是您的新朋友,我估计您也是javascript的新朋友. 在咱们的第一节(深入理解 ...
- 深入理解javascript原型和闭包(6)——继承
为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆.而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中 ...
- 深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】
上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些. 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了.而不 ...
- 深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】
先解释一下什么是“自由变量”. 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量.如下图 如上程序中,在调用fn()函数时,函数体中第6 ...
- 深入理解javascript原型和闭包(15)——闭包
前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础. 至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住. 但是你只需要知道应用的两种情况即可 ...
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事.本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿. 再说明之前,咱们先用简单的语言来概括一下这两个的区别. 0 ...
随机推荐
- iosselect:一个js picker项目,在H5中实现IOS的下拉效果
iosselect是在webapp下的一个picker组件,可以轻松实现各类选择器效果.比如地区选择 时间选择 日期选择等. 下面是一个地址选择器demo截图,可以访问:http://zhoushen ...
- css实现一行文字居中,多行文字左对齐
问题及场景: 当内容能一行显示在盒子内时,文字居中对齐. 当内容过多换行后显示在盒子内时,文字左对齐. 其实这种视觉上的需求还是蛮常见的.比如用于弹出提示框,当提示内容比较少时,内容居中显示在弹出框, ...
- CSS3之过渡及2D变换
transition过渡 transition-duration:; 运动时间 transition-delay:; 延迟时间 transition-timing-function:; 运动形式 ea ...
- SharePoint 2013 Designer 入门教程
SharePoint的使用中,SharePoint Designer是非常重要的工具,我们可以通过Designer设计页面.母版页,维护.管理站点,也可以定制列表表单.数据视图,设计工作流等等.下面总 ...
- 从无到有实现登录功能以及thinkphp怎么配置数据库信息
好开心,终于解决了.从学习android到现在写登录功能已经不是一次两次了,如今再写想着肯定是信手拈来,没有想到的是尽然折磨了我一天的时间才搞定它.唉...... 先来看几张截图,这次的登录跟以往的不 ...
- 使用PullToRefresh插件实现ListView下拉刷新(Android Studio)
下载PullToRefresh
- maven 打包含有第三方依赖的 jar 包
maven 打包含有第三方依赖的 jar 包:mvn assembly:assembly
- mysql操作入门基础之对数据库和表的增删改查
一.数据库管理-- 1.登陆数据库 mysql -u root -p; -- 2.查看数据库服务器所有数据库 SHOW DATABASES; -- 3.创建数据库 CREATE DATABASE My ...
- Java web会话简单应用
Java会话主要分为两块:Cookie和HttpSessionCookie技术:会话数据保存在浏览器客户端.Session技术:会话数据保存在服务器端.一.下面介绍一下Cookie的应用1. Cook ...
- AEAI ESB路由转换机制说明
1. 背景概述 相信了解数通畅联的人对AEAI ESB并不陌生,其设计器ESBDesigner中内置组件有:路由和转换.数据适配器.协议适配器.协议接入适配器等4类组件,每类组件下面包含各种类型的组件 ...