JavaScript继承对象值
在JavaScript继承对象值,javascript,Javascript,在extend()函数中,源代码的输出是 {add:[函数:add],show:[函数:show]}参见第14行 但是在for循环中有另一个新的属性叫做extend??为什么for循环将查看对象的原型链。这是一个很好的例子 为了避免这种情况,可以在循环中生成if语句,检查属性是否是对象的一部分 for (var name in buz) { if (buz.hasOwnProperty(name)) { console.log('this is fog (' + name + ')
extend()
函数中,源代码的输出是
{add:[函数:add],show:[函数:show]}
参见第14行
但是在for循环中有另一个新的属性叫做extend??为什么for循环将查看对象的原型链。这是一个很好的例子 为了避免这种情况,可以在循环中生成if语句,检查属性是否是对象的一部分
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
请参阅有关的更多详细信息。for循环将查看对象的原型链。这是一个很好的例子 为了避免这种情况,可以在循环中生成if语句,检查属性是否是对象的一部分
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
查看有关的更多详细信息。请在问题中直接在代码块中添加代码,而不是发布屏幕截图。请在问题中直接在代码块中添加代码,而不是发布屏幕截图。但为什么会增加新属性,因为我输出了结果,结果与最终结果不同。这个新属性从何而来?这就是javascript原型继承的工作原理,它是语言的重要组成部分。要完全解释它超出了stackoverflow的作用范围,请阅读我链接的文章。如果创建一个类和一个子类,那么子类将通过原型链继承该类的所有方法。当您在无法找到的子类实例上调用方法时,它将在原型链中一次向上移动一级,直到找到该方法为止。这就是您创建的所有类都具有所有对象共享的基本方法的方式。非常感谢。在我关于继承的观点中,我认为它只是一个指向超类型原型的指针,所以当我使用for循环时,它将遍历直到对象原型?是吗?确实如此。但是为什么会增加一个新属性,因为我输出了结果,结果与最终结果不同。这个新属性从何而来?这就是javascript原型继承的工作原理,它是语言的重要组成部分。要完全解释它超出了stackoverflow的作用范围,请阅读我链接的文章。如果创建一个类和一个子类,那么子类将通过原型链继承该类的所有方法。当您在无法找到的子类实例上调用方法时,它将在原型链中一次向上移动一级,直到找到该方法为止。这就是您创建的所有类都具有所有对象共享的基本方法的方式。非常感谢。在我关于继承的观点中,我认为它只是一个指向超类型原型的指针,所以当我使用for循环时,它将遍历直到对象原型?是吗?没错。