为了账号安全,请及时绑定邮箱和手机立即绑定

如何查找函数中的属性

如何查找函数中的属性

江户川乱折腾 2024-01-18 16:03:53
我想知道一个函数是否具有特定的属性。“in”运算符应该已经完成了这项工作:MSD 引用:如果指定的属性位于指定对象或其原型链中,则 in 运算符返回 true。那么 - 你能解释一下这段代码的结果吗?function Shape() {  aaa = 10}Shape.prototype.bbb = 20function Square() {}Square.prototype = Object.create(Shape.prototype)Square.prototype.constructor = Square;console.log('aaa' in Shape) // false???console.log('bbb' in Shape) // false???console.log('aaa' in Square) // false???console.log('bbb' in Square) // false???```
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

in不检查自身的属性class。它检查类实例中的属性。


function Shape() {

  aaa = 10

}

Shape.prototype.bbb = 20


function Square() {}

Square.prototype = Object.create(Shape.prototype)

Square.prototype.constructor = Square;

const instance = new Square();

console.log('aaa' in instance) // false

console.log('bbb' in instance) // true

在这里,当您将属性分配给某些原型时,function并不意味着该函数将具有这些属性。原型上的这些属性将添加到对象创建的实例中。


是的,如果您将属性分配给函数本身,那么它将显示使用in


function test(){


}

test.prototype.x = 3;

test.something = 5

console.log(Object.keys(test)) //["something"]

console.log("something" in test) //true


查看完整回答
反对 回复 2024-01-18
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信