var a= function (){var bb = 12; this.aa ="xxx"};
a.aa="www";
a.prototype.cc="eee";
var b = new a;
for (var i in b){
console.log(b[i]);
}
console.log (b)
console.log(b.aa)
console.log(b.bb)

  

xxx 
eee 
a {aa: "xxx", cc: "eee"} 
xxx
undefined

 总结,构造函数,传递给实例的是this和prototype定义,其他自身的定义的变量,没用传递给实例
 
var a= function (){var bb = 12; this.aa ="xxx"};
a.aa="www";
 a.prototype = "eee";//1 或者“ss” new Number(1111) function(){this.cc="ddd"};
;

  如果将prototype 不赋值为object,而是赋值为原始值,prototype不会传递给实例

xxx 
a {aa: "xxx"} 
xxx 
undefined

var a= function (){var bb = 12; this.aa ="xxx"};
a.aa="www";
a.prototype = new Number(1111);
var b = new a;
for (var i in b){
console.log(b[i]);
}
console.log (b)
console.log(b.aa)
console.log(b.bb)  

xxx 
a {aa: "xxx"} 
xxx 
undefined

	var a= function (){var bb = 12; this.aa ="xxx"};
a.aa="www";
a.prototype = new String("11111");
var b = new a;
for (var i in b){
console.log(b[i]);
}
console.log (b)
console.log(b.aa)
console.log(b.bb)

  

xxx 
5undefined 
a {aa: "xxx", 0: "1", 1: "1", 2: "1", 3: "1", 4: "1"} 
xxx 
undefined

new String,相当于使用数组对象存储的,但是遍历不出来值。

var a= function (){var bb = 12; this.aa ="xxx"};
a.aa="www";
a.prototype = [1,2];
var b = new a;
for (var i in b){
console.log(b[i]);
}
console.log (b)
console.log(b.aa)
console.log(b.bb)

  

xxx 


[aa: "xxx", 0: 1, 1: 2] 
xxx 
undefined

prototype就是{},实例化的对象,key value形式的,其他的都不行,不做传递。

var a=[1,2,3];
for(var i in a){
console.log(typeof i);
console.log(a[i]); }

  

string 

string 

string

3

数组的下标和对象一样,都是stirng

 var a=[1,2,3];
for(var i in a){
console.log(typeof i);
console.log(a[i]); }
var b={0:a,1:b}
console.log(b[0])
console.log(b[1])

  

string 

string 

string 

[1, 2, 3]

undefined

这就是数组的基本方式,

在对象中,如果是数组方式当key,不能使用b.1或者b."1",会报语法错误,跟array保持一致了

b[0]===b["0"] 为ture

总结:

只有this,prototype的值传递给实例,其中prototype必须是key-value的形式才传递,就是实例化后的,

数组和object的关系就是都一致的。

关于构造函数什么值传递给他的实例,只有this和prototype的更多相关文章

  1. new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。

    new运算符 - JavaScript | MDN https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operator ...

  2. python接口测试:如何将A接口的返回值传递给B接口

    在编写接口测试脚本时,要考虑一个问题:参数值从哪里获取 一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢 可能和我的sql写法有关,有些sql加的约束条件比较少 ...

  3. art.dialog.art 中,将子页面窗口中的值传递给父框架中

    artDialog.open.origin.document.getElementById('父元素ID').value=document.getElementById('子页面元素ID').valu ...

  4. Postman----登录接口返回的reponse中token值传递给其他接口的一个简单接口测试示例

    注: 在进行接口测试时,我们都需要使用登录,并且其他的接口都要在登录后进行,那么必不可少的会使用到将登录接口的reponse返回结果中的某些参数值需要进行返回,并传递给其他接口,这样才可以进行登录后的 ...

  5. Net设计模式实例之原型模式( Prototype Pattern)

    一.原型模式简介(Brief Introduction) 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. Specify the kin ...

  6. Spring 学习指南 第三章 bean的配置 (未完结)

    第三章 bean 的配置 ​ 在本章中,我们将介绍以下内容: bean 定义的继承: 如何解决 bean 类的构造函数的参数: 如何配置原始类型 (如 int .float 等) .集合类型(如 ja ...

  7. JS学习:第一周——NO.3面向对象

    [面向对象基础知识] 封装:对于功能相同的代码,我们只需封装一次,以后再遇到类似的功能,只需调用即可,无需重写,避免大量冗余代码. 对象的特征:方法和属性: 面向对象的特点: 封装:低耦合高内聚: 继 ...

  8. js 中的原型prototype

    每次创建新函数,就会根据规则为该函数创建一个 prototype 属性,该属性是一个指向函数原型对象的指针.并且原型对象都默认拥有一个 constructor 属性,该属性是一个指向那个新建函数的指针 ...

  9. 进击JavaScript核心 --- (3)面向对象

    JS中的对象定义为:无序属性的结合,其属性可以包含基本值.对象或者函数   1.定义对象的方式   (1).Object构造函数 var student = new Object(); student ...

随机推荐

  1. Hdu 2888 Check Corners (二维RMQ (ST))

    题目链接: Hdu 2888 Check Corners 题目描述: 给出一个n*m的矩阵,问以(r1,c1)为左上角,(r2,c2)为右下角的子矩阵中最大的元素值是否为子矩阵的顶点? 解题思路: 二 ...

  2. 【loj10061】最短母串

    #10061. 「一本通 2.4 练习 4」最短母串 内存限制:512 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: 1bentong 提交    提交 ...

  3. Python Selenium设计模式 - PO设计模式

    整理一下python selenium自动化测试实践中使用较多的po设计模式. 为什么要用PO 基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务.只需要定位到元素 ...

  4. ImageView控件

    ImageView   显示图片 常用属性: src    要显示的图片 foreground 前景图 backgrund 背景图 alpha 透明度 clickable 是否可以点击 onClick ...

  5. [转]IntelliJ IDEA 自定义方法注解模板

    IntelliJ IDEA 自定义方法注解模板 置顶2017年08月02日 18:04:36 阅读数:32592 最近没啥事开始正式用Eclipse 转入 idea工具阵营,毕竟有70%的开发者在使用 ...

  6. Spring-bean(二)

    命名空间 自动装配 bean之间的关系:继承:依赖 使用外部属性文件 SpEL bean的生命周期 bean的后置处理器 (一)util命名空间 当用list,set等集合时,不能将集合作为独立的be ...

  7. SQL异常为"当IDENTITY_INSERT设置为OFF时" 的解决

    误删数据库时,可以利用insert插入删除的数据,但是有时表可能有自增字段如id.这是插入数据如果包含自增字段就会出现错误,提示"IDENTITY_INSERT设置为OFF,插入失败&quo ...

  8. Javaweb之xml

        1 XML概述     1.1 XML是什么? eXtensible Markup Language可扩展标记语言          1.2 XML作用         主要是用于描述数据,而 ...

  9. 关于bin和obj文件夹。debug 和release的区别(转)

    关于bin和obj文件夹. 楼主hcaihao(影子男孩)2002-05-29 20:04:24 在 .NET技术 / C# 提问 VS.Net会生成bin和obj文件夹以及它们下面的Debug和Re ...

  10. Android(java)学习笔记163:开发一个多界面的应用程序之界面间数据传递

    1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复 ...