Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法理解Javascript输出_Javascript - Fatal编程技术网

无法理解Javascript输出

无法理解Javascript输出,javascript,Javascript,下面的代码正在打印“HelloundDefined”,但我希望它打印“Hello there” 您已将对象分配给a …您立即用一个新对象覆盖它,该对象与您在前一行创建的对象完全没有连接 所述前一个对象没有指向它的引用,并被垃圾回收 您似乎正在寻找(警告:ES6) var proto={ 年龄:功能(a){ console.log(a+this.val) } }; ; var a={val:“there”}; setPrototypeOf(a,proto); a、 年龄(“你好”)好的…明白了,

下面的代码正在打印“HelloundDefined”,但我希望它打印“Hello there”

您已将对象分配给
a

…您立即用一个新对象覆盖它,该对象与您在前一行创建的对象完全没有连接

所述前一个对象没有指向它的引用,并被垃圾回收

您似乎正在寻找(警告:ES6)

var proto={
年龄:功能(a){
console.log(a+this.val)
}
};
;
var a={val:“there”};
setPrototypeOf(a,proto);

a、 年龄(“你好”)好的…明白了,所以添加属性“val”的正确方法是在对象下面写a.val=“there”。create..@MukulChakravarty:是的,没错,你应该这样做<代码>对象。setPrototypeOf
有点不受欢迎。使用调试器逐步检查代码并观察它在做什么。
var proto = {
    age: function(a)    {
        console.log(a+this.val)
    }
};
;
var a = { val: "there" };
a = Object.create(proto);

a.age("hello");
var a = { val: "there" };
a = Object.create(proto);