当前位置: 首页 > news >正文

js | 原型链

为什么前者会输出Lucas 后者不会?call动作具体干了什么?

http://dmitrysoshnikov.com/ecmascript/javascript-the-core/

function Foo(){this.bar="Lucas"
}
let obj={};
obj.__proto__=Foo.prototype;
Foo.call(obj)
console.log(obj.bar); //  输出Lucas// ------------------------------
function Foo(){this.bar="Lucas"
}
let obj={};
obj.__proto__=Foo.prototype;
console.log(obj.bar); // undefined
  • 每个对象都有__proto__,实际是[[prototype]]的写法;
  • 构造函数(对象)不仅有__proto__,还有prototype;
    • 构造函数的__proto__指向Function.prototype
    • 构造函数的prototype指向Foo.prototype; 拿上述举例子
  • Foo.prototype里面实际没有bar;
  • 当执行Foo.call(obj)的时候,实际就是运行了Foo(),把Foo()中this指向obj;所以实际就是
    • obj.bar=“Lucas”;
http://www.lryc.cn/news/404009.html

相关文章:

  • Volatility:分析MS10-061攻击
  • 水表数字识别3:Pytorch CRNN实现水表数字识别(含训练代码和数据集)
  • oracle数据文件损坏和误删dbf文件处理方法
  • postMessageXss续2
  • 【深度学习】sdxl的Lora训练技巧
  • 推荐一款 Android 手机端的 SSH 远程连接工具
  • 3.1、matlab双目相机标定实验
  • IntelliJ IDEA 直接在软件中更新为最新版
  • 库卡机器人示教器 KPC2 00107-264 KPC200.107-264
  • 数据传输安全--VPN
  • 【人工智能】人工智能可解释性和透明度的详细探讨
  • vscode+wsl2+anaconda环境的配置与使用
  • 【Linux网络】套接字编程
  • 在线 PDF 制作者泄露用户上传的文档
  • SQL概述及其规则与规范
  • 开源模型应用落地-FastAPI-助力模型交互-进阶篇-RequestDataclasses(三)
  • 2024.7.20 暑期训练记录(6)
  • firefly rk3288 ubuntu23.10 网卡名为end0 改为eth0
  • git使用总结
  • 使用多进程和多线程实现服务器并发【C语言实现】
  • 深入理解Linux网络(三):TCP对象创建
  • windows server——4.安装DNS管理器
  • 速盾:金融行业服务器如何避免DDoS攻击?
  • 谷粒商城实战笔记-38-前端基础-Vue-指令-单向绑定双向绑定
  • MyPostMan 迭代文档管理、自动化接口闭环测试工具(自动化测试篇)
  • https和http有哪些区别?
  • Bubbliiiing 的 Retinaface rknn python推理分析
  • Web前端-Web开发HTML基础8-nav
  • 如何建设和维护数据仓库:深入指南
  • 海思arm-hisiv400-linux-gcc 交叉编译rsyslog 记录心得