2 bogexueqianduan bogexueqianduan 于 2016.04.08 12:07 提问

javascript中基本类型和引用类型的关系是什么?

他们是谁包含谁的关系,还是相互独立的关系?
为什么说Number 对象是 Number 原始类型的引用类型?

3个回答

fk002008
fk002008   2016.04.08 14:12
已采纳

首先不要用面向对象的思考方式去看js
因为js是偏向函数式语言的。
因此所谓的基本类型和引用类型只是为了类比java等语言而来的东东。

js中是函数当道,比如这个Number他实际上是一个函数名字,不是类型的概念。
函数和普通的变量都是对象。(具有属性和方法的封装体)
js中的“继承”是通过原型链完成的。
基本类型就是这个链条的末端。如同一棵树的叶子节点。

记住js中没有类型的概念。
只有对象。
这才是动态性的真谛。
下面为了描述方便成为类型

比如Number和 var a=3
Number是函数名字,也是一个函数对象
这个变量a所谓的“基本类型”就是从Number的原型来的
Number.prototype

所以基本类型就是 该变量对应的上层函数的prototype

比如 数字123 它的类型是 Number.prototype
字符串 他的类型是 String.prototype
数组 他的类型是 Array.prototype

            等等。

但是上面的Number,String等都是函数,不是类型哦

下面的例子可以看出基本类型也可以有方法的所以不要用java的观点去看
比如 a=123
让a可以调用一个toString()方法打印出 [123]来
使用nodejs平台进行试验:下面方法中的this就是我们的叶子的值,看到this你还认为他是简单的基本类型吗?

 Number.prototype.toString = function(){
    console.log("["+this+"]");
  }
    var a = 123;
    a.toString();

从上面可以看出基本类型也是可以有方法的。
可以通过原型来扩充方法
那么他和所谓的引用类型又有多大的区别呢?

记住一切都是函数
这些常见的值都是函数生成的对象
没有类型只说

CSDNXIAON
CSDNXIAON   2016.04.08 12:11

javascript基本类型与引用类型
javascript基本类型与引用类型
javascript的基本类型和引用类型
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq_19891827
qq_19891827   2016.04.08 13:01

是相互独立的关系,js中变量分类为1.基本类型:变量的内容保存在变量的本地。2.引用类型:变量的内容不保存在变量的本地而是保存在内存的其他地方,变量中保存的是这个内存的地址的值。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!