面向对象小知识

2017-03-29  本文已影响8人  MGd
function Person(name,age) {
        this.name = name;
        this.age = age;
    }
    function Dog(name,age) {
        this.name = name;
        this.age = age;
    }
    var obj1 = new Person("张三",20);
    var obj2 = new Dog("旺财",1);
 console.log(obj1 instanceof Person);       //true
    console.log(obj2 instanceof Person);       //false
    console.log(obj1 instanceof Dog);          //false
    console.log(obj2 instanceof Dog);       //true

再次强调什么是原型对象

构造函数.prototype
对象.__proto__
Object.getPrototypeOf(对象)
通常情况下,声明变量需要使用var关键字,默认所有的全局变量都会成为window的属性
特殊情况下,不适用var直接赋值也能声明一个变量 ,默认会成为一个全局的变量

使用var声明的全局变量可以被删除吗? 不可以
直接添加在window上面的属性可以被删除吗? 可以

 function Person(name) {
        this.name = name;
    }
    Person.prototype.hi = "hi";
    var p1 = new Person();
语法 对象.hasOwnProperty("属性")
    console.log(p1.hasOwnProperty("name")); //true
    console.log(p1.hasOwnProperty("age"));  //false
    console.log(p1.hasOwnProperty("hi"));   //false
语法 “属性” in 对象
    console.log("name" in p1);           //true
    console.log("age" in p1);            //false
    console.log("hi" in p1);              //true
上一篇 下一篇

猜你喜欢

热点阅读