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 ...
随机推荐
- CentOS7中安装Python3.5
1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. 安装相关依赖 yum install gcc ope ...
- [Erlang 0124] Erlang Unicode 两三事 - 补遗
最近看了Erlang User Conference 2013上patrik分享的BRING UNICODE TO ERLANG!视频,这个分享很好的梳理了Erlang Unicode相关的问题,基本 ...
- SQL Server中删除重复数据
delete from A ) )
- (转载)centos yum源的配置和使用
原文地址:http://www.cnblogs.com/mchina/archive/2013/01/04/2842275.html 一.yum 简介 yum,是Yellow dog Updater, ...
- centos7 apache httpd安装和配置django项目
一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...
- 【转】XenServer架构之XAPI
一.XAPI对资源池的管理 作为XenServer的管理工具集,XAPI管理XenServer的主机,网络和存储.不管是OpenStack还是CloudStack,如果使用XenServer作为虚拟化 ...
- 例解 Linux 下 Make 命令
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...
- pcl曲面网格模型的三种显示方式
pcl网格模型有三种可选的显示模式,分别是面片模式(surface)显示,线框图模式(wireframe)显示,点模式(point)显示.默认为面片模式进行显示.设置函数分别为: void pcl:: ...
- [LeetCode] Smallest Rectangle Enclosing Black Pixels 包含黑像素的最小矩阵
An image is represented by a binary matrix with 0 as a white pixel and 1 as a black pixel. The black ...
- [LeetCode] Count Primes 质数的个数
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...