javascript - 为什么两个函数调用都返回相同的值?

标签 javascript jquery

请看下面的代码段:

var o = {f:function(){ return this.a + this.b; }};
var p = Object.create(o);
o.a = 10;
o.b = 20;

console.log(o.f());  // output: 30
console.log(p.f());  // output: 30

对象 p 没有属性 p.ap.b 那么 p.f() 如何返回输出 30 . 那是原型(prototype)链吗?谁能解释一下?提前致谢。

最佳答案

这里 oprototype p 对象,所以 o 的所有属性在 p 中可用。

因此,当您调用p.f() 时,您将在this.athis 中获得分配给o 的值。 b

关于javascript - 为什么两个函数调用都返回相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117407/

相关文章:

javascript - 在离线页面中使用 javascript

javascript - 用 angular.element(element).offset 替换 $(element).offset

jquery - jquery 上下移动元素

javascript - 如何暂停 CSS 过渡?

jquery - 在窗口中创建多个弹出窗口

javascript - 如何在 Pyramid 中处理 POSTed JS 数组

javascript - jquery slider 未捕获类型错误: undefined is not a function

javascript - 如何使用名称和类型验证 html 中的单选按钮

javascript - 在 Hangman TypeScript 游戏结束时一次显示一个下划线

javascript - 如何让javascript更改文件夹外部的html元素