测试JS基本类型以及对象的引用
自己敲的。
1 <script src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js" type="text/javascript"></script> <script type="text/javascript" language="javascript" charset="utf-8">
var a = new Number(5);
var b = a;
a = 6;
console.info(b);//输出一个number对象
console.info(b.toString());//值为5
var c = 5;
console.info(c);//直接打印5,那么这个是基本数据类型。
console.info(a == b);//false
console.info(a === b);//false
a = 5;
console.info(a == b);//true,值相等,但确切说,不是同一个对象
console.info(a === b);//false
a = 5;
b = a;
console.info(a == b);//true 现在是同一对象了
console.info(a === b);//true function Man(){
this.love = "爱";
}
Man.prototype = {
__proto__:new Man(),//不加这句的话,就不会有名字。Man对象的原型名就叫Man,但意思又是继承了Man,把Man中的属性弄成了,反正不要这样。
"name":"小王",
"age":23,
sex:"男"
}
var m = new Man();//打印的对象
//m.prototype.name = "小李";//m,实例无法更改原型属性
Man.prototype.name = "小李";
var m2 = m;
m2.love="不爱";
console.info(m);
console.info(m.love);//不爱,指向同一个对象。
console.info(m == m2);//true
console.info(m === m2);//true function People(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
} var p = new People("小王",23,"男");
var p1 = new People("小王1",23,"男");
var p2 = p;
console.info(p);//"小王",23,"男"
console.info(p1);//"小王1",23,"男"
console.info(p == p1);//false
console.info(p === 1);//false
console.info(p == p2);//true
console.info(p === p2);//true var Animal = Class.create();
Animal.prototype = {
constructor : Animal, //注意这句将修复constructor属性
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}
var a = new Animal("小狗");
console.info(a); /**
* $class //这是一个摘抄的,源地址在底部
* @param {String} className
* @param {Function} superClass
* @param {Function} classImp
*/
function $class(className, superClass, classImp){
if(superClass === "") superClass = Object; function clazz(){
if(typeof this.init == "function"){
this.init.apply(this, arguments);
}
} var p = clazz.prototype = new superClass();
var _super = superClass.prototype;
window[className] = clazz;
classImp.apply(p, [_super]);
} $class('Zhiwu', '', function(){
// 构造函数
this.init = function(name){
this.name = name;
};
// 方法体
this.getName = function(){
return this.name;
};
this.setName = function(name){
this.name = name;
};
}); var p = new Zhiwu('Jack');
console.log(p);
console.log(p.constructor == Zhiwu); </script> 擦,地址忘了。叉了就忘了。
测试JS基本类型以及对象的引用的更多相关文章
- 用浅/深拷贝、和HTML5方法解决js对象的引用的问题
先来看一个例子 例一: var a=[1,2,3]; var b=a; b.push(4); alert(b);//1,2,3,4 alert(a);//1,2,3,4 var a=[1,2,3]; ...
- js之数据类型(对象类型——构造器对象——数组1)
数组是值的有序集合,每个值叫做一个元素,而每一个元素在数组中有一个位置,以数字表示,称为索引.JavaScript数组是无类型的,数组元素可以是任意类型且同一个数组中不同元素也可能有不同的类型.数组的 ...
- js之数据类型(对象类型——构造器对象——对象)
JavaScript中除了原始类型,null,undefined之外就是对象了,对象是属性的集合,每个属性都是由键值对(值可以是原始值,比如说是数字,字符串,也可以是对象)构成的.对象又可分为构造器对 ...
- java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0
java 继承使用关键字extends 继承的作用:减少代码量,优化代码 继承的使用注意点: 1子类不能继承父类的私有变量 2.子类不能继承父类的构造方法 3.子类在调用自己的构造方法时 会默认调 ...
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...
- js基本类型存放和对象存放的区别(对象遍历)
js的基本类型,对象类型的应用在初学的时候,需要自己加以明确,明确了数据类型,在使用过程中才能正确使用变量.如下两个例子是摘自初学时的笔记,为大家提供参考. 1.对象可以存放属性和方法,js基本类型不 ...
- [IIS] 测试的产品登陆之后有个引用外部站点js的请求半天都无法返回,导致网页一直在打转,Selenium的driver也无法对页面进行下一步的操作
测试的产品登陆之后有个引用外部站点js的请求半天都无法返回: https://cdn.heapanalytics.com/js/heap-3497400264.js 这个js如果是在美国的机器上就可以 ...
- js之数据类型(对象类型——构造器对象——数组2)
一.数组空位与undefined 数组空位:数组的某一个位置没有任何值 产生空位的原因:数组中两个逗号之间不放任何值:用new Array()的方法,参数里是个数字:通过一个不存在的下标去增加数组:增 ...
- JS对象的引用,对象的拷贝
目录 一.场景 二.浅拷贝 三.深拷贝 一.场景 除了基本类型跟null,对象之间的赋值,只是将地址指向同一个,而不是真正意义上的拷贝 将一个对象赋值给另外一个对象. var a = [1,2,3]; ...
随机推荐
- Apache Tomcat下载、安装、配置图文教程
本文已迁移到我的个人网站 http://www.wshunli.com 文章地址: http://www.wshunli.com/2016/03/19/Tomcat安装配置/ (整理截图.安装过程更加 ...
- POJ1035——Spell checker(字符串处理)
Spell checker DescriptionYou, as a member of a development team for a new spell checking program, ar ...
- RGB颜色查询对照表
RGB颜色查询对照表 RGB颜色对照表 #FFFFFF2015-02-05 #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFF ...
- Android之AlertDialog.Builder详解
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; ...
- node.js模块值formidable
模块地址:https://github.com/felixge/node-formidable var formidable = require('formidable'), http = requi ...
- 【HDOJ】4373 Mysterious For
1. 题目描述有两种不同类型的循环,并给出一个由1.2组成的序列,表示嵌套的循环类型.问这样组着的循环一共需要多少次循环?并将结果模364875103. 2.基本思路显然,每当遇到一个类型1的序列,即 ...
- HTML5学习(八)----Web存储
参考地址:http://www.w3school.com.cn/html5/html_5_webstorage.asp 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localS ...
- linux下进程相关操作
一.定义和理解 狭义定义:进程是正在运行的程序的实例. 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动. 进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的 ...
- mac tree命令
mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如显示当前目录的 tree 的命令: $ find . -print | sed -e 's;[^/]*/;| ...
- POJ3352Road Construction(无向图强连通)
http://poj.org/problem?id=3352 无向图强连通分量缩点 知道一个等式: 若要使得任意一棵树,在增加若干条边后,变成一个双连通图,那么 至少增加的边数 =( 这棵树总度数为1 ...