博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解Javascript原型和闭包(1)——一切都是对象
阅读量:4617 次
发布时间:2019-06-09

本文共 1431 字,大约阅读时间需要 4 分钟。

“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。

当然,也不是所有的都是对象,值类型就不是对象。

JS中一个常用的操作符——typeof用来判断数据类型

1 function show(x) { 2  3             console.log(typeof x);    // undefined 4             console.log(typeof 10);   // number 5             console.log(typeof 'abc'); // string 6             console.log(typeof true);  // boolean 7  8             console.log(typeof function () {});  //function 9 10             console.log(typeof [1, 'a', true]);  //object11             console.log(typeof { a: 10, b: 20 });  //object12             console.log(typeof null);  //object13             console.log(typeof new Number(10));  //object14         }15         show();

从以上代码可以看出,undefined、number、string、boolean、null属于简单的值类型,不是对象剩下的几种情况——function、array、object都是对象,他们都是引用类型。

判断一个变量是不是对象很简单。值类型的判断用typeof,引用类型的判断用instanceof。

 

1 var fn = function () { };2 console.log(fn instanceof Object);  // true

 

对象——若干属性的集合

JS里面数组是对象,函数是对象,对象还是对象。对象里面的一切都是属性,只有属性,没有方法。那对象里的方法如何表示呢?方法也是一种属性,因为它的属性表示为键值对的形式。

同时,js里的对象可以任意的扩展属性,没有class的约束。

上面代码中,obj是一个自定义的对象,其中a,b,c就是他的属性,而且c的属性值还是一个对象,它又有name、year两个属性。

但函数跟数组不是这样定义属性的,以函数为例:

1         var fn = function () { 2             alert(100); 3         }; 4         fn.a = 10; 5         fn.b = function () { 6             alert(123); 7         }; 8         fn.c = { 9             name: "王福朋",10             year: 198811         };

上面代码中,函数作为对象呗赋值了a,b,c三个属性。

一切引用类型都是对象,对象是属性的集合

 

转载于:https://www.cnblogs.com/endlessmy/p/8547953.html

你可能感兴趣的文章
SQL函数——LENGTH()和LENGTHB()
查看>>
vim - manual -个人笔记
查看>>
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>
递归定义
查看>>
kindeditor 代码高亮设置
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异
查看>>
PHP中获取当前页面的完整URL
查看>>
所谓输入掩码技术,即只有数字键起作用
查看>>
Display对象,Displayable对象
查看>>
安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
查看>>
数据结构(并查集):COGS 260. [NOI2002] 银河英雄传说
查看>>
生产环境下正则的应用实例(一)
查看>>
在CentOS7命令行模式下安装虚拟机
查看>>