测试JS基本类型以及对象的引用

自己敲的。
1
<script src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js" type="text/javascript"></script> 2 3 <script type="text/javascript" language="javascript" charset="utf-8"> 4 var a = new Number(5); 5 var b = a; 6 a = 6; 7 console.info(b);//输出一个number对象 8 console.info(b.toString());//值为5 9 var c = 5; 10 console.info(c);//直接打印5,那么这个是基本数据类型。 11 console.info(a == b);//false 12 console.info(a === b);//false 13 a = 5; 14 console.info(a == b);//true,值相等,但确切说,不是同一个对象 15 console.info(a === b);//false 16 a = 5; 17 b = a; 18 console.info(a == b);//true 现在是同一对象了 19 console.info(a === b);//true 20 21 22 23 function Man(){ 24 this.love = "爱"; 25 } 26 Man.prototype = { 27 __proto__:new Man(),//不加这句的话,就不会有名字。Man对象的原型名就叫Man,但意思又是继承了Man,把Man中的属性弄成了,反正不要这样。 28 "name":"小王", 29 "age":23, 30 sex:"男" 31 } 32 var m = new Man();//打印的对象 33 //m.prototype.name = "小李";//m,实例无法更改原型属性 34 Man.prototype.name = "小李"; 35 var m2 = m; 36 m2.love="不爱"; 37 console.info(m); 38 console.info(m.love);//不爱,指向同一个对象。 39 console.info(m == m2);//true 40 console.info(m === m2);//true 41 42 function People(name,age,sex){ 43 this.name = name; 44 this.age = age; 45 this.sex = sex; 46 } 47 48 var p = new People("小王",23,"男"); 49 var p1 = new People("小王1",23,"男"); 50 var p2 = p; 51 console.info(p);//"小王",23,"男" 52 console.info(p1);//"小王1",23,"男" 53 console.info(p == p1);//false 54 console.info(p === 1);//false 55 console.info(p == p2);//true 56 console.info(p === p2);//true 57 58 var Animal = Class.create(); 59 Animal.prototype = { 60 constructor : Animal, //注意这句将修复constructor属性 61 initialize : function(name) { 62 this.name = name; 63 }, 64 getName : function() { 65 return this.name; 66 }, 67 setName : function(name) { 68 this.name = name; 69 } 70 } 71 var a = new Animal("小狗"); 72 console.info(a); 73 74 75 76 77 /** 78 * $class //这是一个摘抄的,源地址在底部 79 * @param {String} className 80 * @param {Function} superClass 81 * @param {Function} classImp 82 */ 83 function $class(className, superClass, classImp){ 84 if(superClass === "") superClass = Object; 85 86 function clazz(){ 87 if(typeof this.init == "function"){ 88 this.init.apply(this, arguments); 89 } 90 } 91 92 var p = clazz.prototype = new superClass(); 93 var _super = superClass.prototype; 94 window[className] = clazz; 95 classImp.apply(p, [_super]); 96 } 97 98 $class('Zhiwu', '', function(){ 99 // 构造函数 100 this.init = function(name){ 101 this.name = name; 102 }; 103 // 方法体 104 this.getName = function(){ 105 return this.name; 106 }; 107 this.setName = function(name){ 108 this.name = name; 109 }; 110 }); 111 112 var p = new Zhiwu('Jack'); 113 console.log(p); 114 console.log(p.constructor == Zhiwu); 115 116 </script>


擦,地址忘了。叉了就忘了。
原文地址:https://www.cnblogs.com/xunol/p/3213460.html