先定義物件
function person(name,age)this.setname=function(name)
this.setage=function(age)
}var person = new person('xiao', 21);
function chinese()
}chinese.prototype=person;
var chinese = new chinese();
1.物件的prototype屬性
var proto = object.getprototypeof(chinese); //獲取物件的prototypedocument.writeln(proto===person); //=>true
document.writeln(person.isprototypeof(chinese)); //=>true 判斷是否是物件的原型
2.物件的class 屬性
物件的class屬性是乙個字串,用來描述物件的類資訊。物件的class屬性可以通過物件的tostring()獲得。但是tostring()經常被重寫,必須間接地呼叫function.call方法
function classof(o)document.writeln(classof(person)); //=>object
document.writeln(classof(1)); //=>number
3.物件的可擴充套件性
/*物件的可擴充套件性用以表示是否可以給物件新增新屬性,所有內建物件和自定義物件都是顯示可擴充套件的*/var newperson = object.preventextensions(person); //將物件改為不可擴充套件的,返回修改後的物件
document.writeln(object.i***tensible(person)); //=>false, 判斷物件是否可擴充套件
person.high=170;
newperson.high=170;
document.writeln(person.high); //=>undefined
document.writeln(newperson.high); //=>undefined
除了將物件設定為不可擴充套件的,還可將物件的自有屬性設定為不可配置的
var newperson1 = object.seal(person); //封閉person
document.writeln(object.issealed(person)); //=>true, person已被封閉
除了將物件設為不可擴充套件的和將其屬性設為不可配置的外,還將它所有的自有屬性設定為唯讀的
var newperson2 = object.freeze(person); //凍結person
document.writeln(object.isfrozen(person)); //=>true, person已被凍結
* 注意:
1. 一旦將物件轉為不可擴充套件的,就無法將其轉為可擴充套件的了。seal(), freeze()同樣也是不可逆的。
2. preventextensions只影響到物件本身的可擴充套件性。如果給乙個不可擴充套件物件的原型新增屬性,則這個不可擴充套件物件將會繼承新屬性。
JavaScript事件event物件屬性
ie和ff獲取事件的不同 var e window.event e.target event 物件只在事件發生的過程中才有效。阻止事件預設行為 ie window.event.returnvalue true ff e.preventdefault 阻止事件冒泡行為 ie window.event....
JavaScript 判斷物件中是否有某屬性
通過點或者方括號可以獲取物件的屬性值,如果物件上不存在該屬性,則會返回undefined。當然,這裡的 不存在 指的是物件自身和原型鏈上都不存在,如果原型鏈有該屬性,則會返回原型鏈上的屬性值。建立物件 let test 獲取物件的自身的屬性 test.name lei test name lei 獲...
javascript物件導向 三
物件導向三大特徵 封裝 繼承 多型 封裝 將 封裝到函式中,不允許外部訪問內部成員的屬性和方法,對外提供唯一的訪問介面。繼承 通過物件繼承另乙個物件的屬性和方法,並進行擴充套件開發和維護。繼承擁有單根性和傳遞性。多型 乙個介面方式,根據引數的不同實現不同的狀態 前端沒有多型,只有偽多型 封裝的優勢 ...