2、一道函数考察基本功

本文深入探讨JavaScript中的关键概念,包括函数和类的定义与使用、原型链的工作原理、运算符优先级规则、作用域解析及变量提升现象。通过具体代码示例,详细解释了不同上下文中getName函数的行为变化,展示了JavaScript的动态特性和执行机制。

 

js

// 知识点:函数和类、原型链、运算符优先级、作用域、变量提升
function Foo() {
  getName = function() { console.log(1) } // 替换下面全局的getName
  return this // window对象
}
Foo.getName = function () { console.log(2) }
Foo.prototype.getName = function() { console.log(3) }
var getName = function() { console.log(4) }
function getName() { console.log(5) }

Foo.getName() // 2
getName()  // 4
Foo().getName()  // 1
getName() // 1

new Foo.getName() // 2  new function () { console.log(2) }
new Foo().getName() // 3
new new Foo().getName() // 3  new Foo.getName()
// 参考
// 运算符优先级:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

 

转载于:https://www.cnblogs.com/zouxinping/p/10320651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值