JavaScript——面向对象

记录一下阅读《JavaScript高级程序设计》的一点点笔记
——面向对象

访问器的属性 set get

var book = {
            _year : 2004,
            edition : 1
        };
        Object.defineProperty(
            book,"year", {
                get : function(){
                    return this._year;
                },
                set : function(newValue) {
                    if(newValue > 2004) {
                        this._year = newValue;
                        this.edition += newValue - 2004;
                    }
                }
            }
        )

设置一个属性的值会导致另一属性的变化

判定该属性在原型中还是实例中

eg :

  function Person(){}

        Person.prototype.name = "nich";
        Person.prototype.age = 12;
        Person.prototype.job = "se";
        Person.prototype.sayName = function(){
            console.log(this.name);
        };

        var person = new Person();

hasOwnProperty是否在实例中

person.hasOwnProperty("name")

for in 和 hasOwnProperty 判断是否属于原型

function hasPrototypeProperty(object,name) {  
            return !object.hasOwnProperty(name) && (name in object)
        }
        //既不在实例中 又在对象里——属于原型

实例中的指针指向的是方法,不是构造函数

你可能感兴趣的:(前端学习,javascript,前端,开发语言)