Javascript 如果在Typescript对象中未定义setter或属性,则不执行任何操作?
是否可以检查Typescript对象中是否没有定义setter 我有以下代码:Javascript 如果在Typescript对象中未定义setter或属性,则不执行任何操作?,javascript,typescript,Javascript,Typescript,是否可以检查Typescript对象中是否没有定义setter 我有以下代码: class Sample { private _name; set name(value: string) { value = value.trim(); if(value.length > 0) this._name = value; } get name(): string { return this._name; } } 我通过html表单中的
class Sample {
private _name;
set name(value: string) {
value = value.trim();
if(value.length > 0)
this._name = value;
}
get name(): string {
return this._name;
}
}
我通过html表单中的更改侦听器设置值
问题是,如果我有一个表单元素显示在未定义的对象属性上,它只是简单地设置它
sample = new Sample();
sample.name = "myName";
sample.myTest = true;
返回如下所示的对象:
{
name: "myName";
myTest: true;
}
如何防止未定义的属性不被设置
使用sample.hasOwnProperty(propertyName)
allways返回falsesample.hasOwnProperty(“”+propertyName)
也返回false
sample[propertyName]===undefined
在sample.name上返回true,因为在初始化对象时没有设置值。您可以检查实例构造函数。prototype
是否具有以下属性:
let sample = new Sample();
console.log(sample.constructor.prototype.hasOwnProperty("name")); // true
let object = {};
console.log(object.constructor.prototype.hasOwnProperty("name")); // false
()您可以检查实例
构造函数.prototype
是否具有以下属性:
let sample = new Sample();
console.log(sample.constructor.prototype.hasOwnProperty("name")); // true
let object = {};
console.log(object.constructor.prototype.hasOwnProperty("name")); // false
()可能重复:@spender我已经测试了它,但在我的案例中不起作用,因为我不知道我的应用程序的类类型。activeObject property可能重复:@spender我已经测试了它,但在我的案例中不起作用,因为我不知道我的应用程序的类类型。activeObject propertyNice job gever。谢谢,工作完美。有时你看不到简单的东西。谢谢,工作做得很好。有时你看不到简单的事情