JavaScript学习笔记——统一理论:“一切皆对象”

体会“一切皆对象”的说法

  • 基本类型(可随时像使用对象一样使用它们)
    布尔值、数字和字符串等虽然是基本类型,但只要需要,随时都可将它们视为对象,如字符串有一些内置方法,调用这些方法时,JavaScript在幕后将其转化为字符串对象
  • 数组(它们有点像对象)
  • 函数(它们像对象一样包含属性和方法)
  • 构造函数(既像对象又像函数)
  • 还有对象本身
  • 还有一些内置类型,如Date、Math和RegEx,但它们也都是对象

布尔值、数字和字符串、数组…一切皆对象。它们之所以看起来不同,只是因为JavaScript提供了一些出色的“语法糖”,让我们能够更轻松地创建和访问对象

就连函数也是对象

下面的代码验证了“函数也是对象”:

function func(){console.log("Everything is an object");)

console.log(func instanceof Object);

输出true,说明函数也是一个Object对象实例

函数确实是对象,现在看来这没什么奇怪的:

  • 我们可以将函数赋给变量(就像将对象赋给变量一样),将其作为实参传递给函数(就像对象一样),从函数返回它们(就像对象一样)。
  • 函数甚至包含属性,如构造函数的constructor属性等
  • 另外,完全可以给函数添加新属性——如果这样做有所帮助的话

整合统一

从很大程度上说,JavaScript的威力和灵活性都要归功于可以将函数和对象作为一等值使用
想想我们学习过的知识(构造函数、创建可重用和扩展的对象、参数化函数的行为、闭包等),你就会发现,它们的强大威力都取决于对高级对象和函数的认识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值