他们是谁包含谁的关系,还是相互独立的关系?
为什么说Number 对象是 Number 原始类型的引用类型?
![](https://profile-avatar.csdnimg.cn/c0c704630dab469b94300ae28e110641_bogexueqianduan.jpg!4)
javascript中基本类型和引用类型的关系是什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- lambda-fk 2016-04-08 06: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();
从上面可以看出基本类型也是可以有方法的。
可以通过原型来扩充方法
那么他和所谓的引用类型又有多大的区别呢?记住一切都是函数
这些常见的值都是函数生成的对象
没有类型只说本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵