JavaScript检查对象是否继承了属性
JavaScript check if object has inherited property
function Employee(name, dept) {
this.name = name || "";
this.dept = dept || "general";
}
function WorkerBee(projs) {
this.projects = projs || [];
}
WorkerBee.prototype = Object.create( Employee.prototype );
function Engineer(mach) {
this.dept = "engineering";
this.mach = mach || "";
}
Engineer.prototype = Object.create(WorkerBee.prototype);
var jane = new Engineer("belau");
console.log( 'projects' in jane );
正在尝试检查jane
是否继承了projects
属性。
输出false
。为什么?
输出
false
。为什么?
因为this.projects
被设置在WorkerBee
内部,但该函数从未被执行。
这与您之前的问题相同:JavaScript继承Object.create((未按预期工作
如果您正在测试对象本身(而不是其原型链的一部分(上的属性,则可以使用.hasOwnProperty((:
if (x.hasOwnProperty('y')) {
// ......
}
对象或其原型具有属性:
您也可以使用in运算符来测试继承的属性。
if ('y' in x) {
// ......
}
相关文章:
- 当使用控制器作为语法时,如何从父指令继承属性
- Javascript嵌套函数属性继承
- 继承的属性检查
- 如何防止在javascript中执行继承属性的getter-setter方法
- JavaScript 属性继承
- 无法使用 Snap.SVG将“填充”属性设置为“继承”
- 为什么函数对象的实例没有继承函数原型属性
- AngularJS观察指令属性表达式,动态继承作用域
- Javascript 类继承.子类更改主类的属性
- 继承的Javascript对象将丢失属性值
- 原型继承和原型属性
- (Javascript)覆盖对象内置或继承的属性
- Javascript中的“私有”属性继承
- Angular 1.4.8/JS:创建构造函数并将属性继承到第三个对象中
- JavaScript将对象作为属性继承
- JavaScript中的原型和属性继承
- 我如何正确地使一个构造器的prototype属性继承它原来的prototype属性?
- JS对象的属性继承
- 在 ES2015 中实现简单属性继承
- Javascript中的属性继承