in
用法:检查对象和原型对象是否含有该属性。
语法:"属性名" in 对象名
hasOwnProperty
用法:检查对象自身是否含有该属性。
语法:对象名.hasOwnProperty("属性名")
instanceof
用法:检查一个对象是否是一个类的实例。
语法:对象 instanceof 构造函数
结果显示:以上检查判断,如果是,则返回true,否则返回false
注意:所有的对象都是Object的后代,所以任何对象和Object做instanceof检查时都会返回true。
垃圾回收(Garbage Collection)
程序运行过程中产生垃圾,积攒过多会导致程序变慢。为了解决这类问题,JS中拥有自动垃圾回收机制,系统会自动将垃圾对象进行销毁。因此我们只需要将不再使用的对象设置null,即可触发回收机制。
示例:
<script>
function Person(name, age, grade)
{
this.name = name;
this.age = age;
this.grade = grade;
this.show_id = function(id)
{
console.log(id);
}
}
var per11 = new Person("张三", 16, 6);
console.log("show_id" in per11);
console.log(per11.hasOwnProperty("grade"));
console.log(per11 instanceof Person);
console.log("hasOwnProperty" in per11);
console.log("toString" in per11);
console.log(per11.hasOwnProperty("hasOwnProperty"));
console.log(per11.hasOwnProperty("toString"));
// 说明hasOwnProperty和toString方法在原型的原型,即在Object对象中
console.log(per11.__proto__.__proto__.hasOwnProperty("hasOwnProperty"));
console.log(per11.__proto__.__proto__.hasOwnProperty("toString"));
console.log(per11);
</script>