记录一下阅读《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中面向对象编程的特性,特别是访问器属性set和get的用法。通过实例演示如何定义和操作带有条件逻辑的年份属性,并揭示了如何判断属性在原型链上的位置。此外,文章还讲解了`hasOwnProperty`和`for...in`的区别,以及实例中的方法和构造函数的关系。
1326

被折叠的 条评论
为什么被折叠?



