关于构造函数什么值传递给他的实例,只有this和prototype
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
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
1
2
[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
1
string
2
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
1
string
2
string
3
[1, 2, 3]
undefined
这就是数组的基本方式,
在对象中,如果是数组方式当key,不能使用b.1或者b."1",会报语法错误,跟array保持一致了
b[0]===b["0"] 为ture
总结:
只有this,prototype的值传递给实例,其中prototype必须是key-value的形式才传递,就是实例化后的,
数组和object的关系就是都一致的。
关于构造函数什么值传递给他的实例,只有this和prototype的更多相关文章
- new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
new运算符 - JavaScript | MDN https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operator ...
- python接口测试:如何将A接口的返回值传递给B接口
在编写接口测试脚本时,要考虑一个问题:参数值从哪里获取 一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢 可能和我的sql写法有关,有些sql加的约束条件比较少 ...
- art.dialog.art 中,将子页面窗口中的值传递给父框架中
artDialog.open.origin.document.getElementById('父元素ID').value=document.getElementById('子页面元素ID').valu ...
- Postman----登录接口返回的reponse中token值传递给其他接口的一个简单接口测试示例
注: 在进行接口测试时,我们都需要使用登录,并且其他的接口都要在登录后进行,那么必不可少的会使用到将登录接口的reponse返回结果中的某些参数值需要进行返回,并传递给其他接口,这样才可以进行登录后的 ...
- Net设计模式实例之原型模式( Prototype Pattern)
一.原型模式简介(Brief Introduction) 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. Specify the kin ...
- Spring 学习指南 第三章 bean的配置 (未完结)
第三章 bean 的配置 在本章中,我们将介绍以下内容: bean 定义的继承: 如何解决 bean 类的构造函数的参数: 如何配置原始类型 (如 int .float 等) .集合类型(如 ja ...
- JS学习:第一周——NO.3面向对象
[面向对象基础知识] 封装:对于功能相同的代码,我们只需封装一次,以后再遇到类似的功能,只需调用即可,无需重写,避免大量冗余代码. 对象的特征:方法和属性: 面向对象的特点: 封装:低耦合高内聚: 继 ...
- js 中的原型prototype
每次创建新函数,就会根据规则为该函数创建一个 prototype 属性,该属性是一个指向函数原型对象的指针.并且原型对象都默认拥有一个 constructor 属性,该属性是一个指向那个新建函数的指针 ...
- 进击JavaScript核心 --- (3)面向对象
JS中的对象定义为:无序属性的结合,其属性可以包含基本值.对象或者函数 1.定义对象的方式 (1).Object构造函数 var student = new Object(); student ...
随机推荐
- selenium2+python自动化1-操作浏览器
随着测试行业的发展,现在不论在找工作还是在实际的工作中,对要求掌握自动化越来越普遍,在这里就记录一下一些入门的知识,希望对阅读者能有一些帮助吧!好哒,步入正题,这一篇主要记录下如何用Python调用w ...
- iOS9 开发新特性 Spotlight使用
1.Spotloight是什么? Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotl ...
- JD IPO address by liuqiangdong
Ladies and gentlemen, Good evening.I'd rather use english, not mandarin.Because during the road show ...
- PL/SQL学习笔记(三)
-----创建一个序列,再创建一个表(主键是数字),通过序列生成该表的主键值. create table mytb1( m_id number primary key, m_name ) not nu ...
- Java Web开发之Spring | SpringMvc | Mybatis | Hibernate整合、配置、使用
1.Spring与Mybatis整合 web.xml: <?xml version="1.0" encoding="UTF-8"?> <web ...
- liunx 修改IP地址
1.安装centos系统,这里就不详细说明了. 2.进入到 vi /etc/sysconfig/network-scripts/ifcfg-eth0 后面的名称有些可能不同 其中,有些可能没 ...
- Day.js 是一个轻量的处理时间和日期的 JavaScript 库
Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js ...
- k8s 核心功能[转]
部署应用 执行命令: kubectl run kubernetes-bootcamp \ --image=docker.io/jocatalin/kubernetes-bootcamp:v1 \ -- ...
- CentOS6 自己动手搭建开放NTP服务器
第一步: 1. 安装NTP服务程序: [root@host ~]# rpm -qa | grep ntp #查询是否安装ntp服务程序 [root@host ~]# yum install -y nt ...
- webpack、node、npm之间的关系
webpack能够把.vue后缀名的文件打包成浏览器能够识别的js 而这个.vue文件装换需要打包器vue-loader 这个vue-loader打包器是可以从npm上面下载(npm上面有很多资源包) ...