示例
class A {public age: number}
class B {
//定义属性name
private _name: string;
public get name() {
return this._name;
}
public set name(value: string) {
this._name = value;
}
}
function checkInstanceof(value: A | B)
{
if (value instanceof A) {
console.log("instanceof A");
}
if (value instanceof B) {
console.log("instanceof B");
}
//遍历对象上的所有属性
for (let key in value) {
if (value.hasOwnProperty(key)) {
console.log("own property: "+key);
}else{
console.log("prototype: "+key);
}
}
}
function checkTypeof(value: number|string|boolean|symbol)
{
if (typeof value === "number") {
console.log("number");
}
if (typeof value === "string") {
console.log("string");
}
if (typeof value === "boolean") {
console.log("boolean");
}
if (typeof value === "symbol") {
console.log("symbol");
}
}
checkInstanceof(new A())
checkInstanceof(new B())
checkTypeof(5)
checkTypeof("sss")
checkTypeof(true)
console.log("遍历字面量")
let obj = {name: "xxx", age: 12};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
console.log("own property: "+key);
}else{
console.log("prototype: "+key);
}
}
console.log("遍历函数对象")
function fun1()
{
this.firstName = "a";
}
fun1.prototype.secondName = "b";
let obj1 = new fun1();
for (let key in obj1) {
if (obj1.hasOwnProperty(key)) {
console.log("own property: "+key);
}else{
console.log("prototype: "+key);
}
}
运行测试