每個物件的原型上都有乙個constructor屬性,指向了其建構函式
function person()
var person = new person();
person.constructor === person // true
person.constructor === object // false
var object =
object.constructor === object // true
function person()
person.prototype =
var p1 = new person()
p1.constructor === person //false
function person()
person.prototype =
var p1 = new person()
p1.constructor === person // true
instanceof
運算子用來測試乙個物件在其原型鏈中是否存在乙個建構函式的原型物件(通俗的講就是判斷乙個物件的原型鏈上是否存在乙個建構函式的原型物件)
function person()
var person = new person();
person instanceof person // true
person instanceof object // true
var object =
object instanceof object // true
function person()
var p1 = new person()
p1 instanceof person // true
person.prototype =
// p1是修改建構函式原型物件之前建立的物件
// p1的__proto__仍然指向原來的原型物件
p1 instanceof person // false
// p2是修改建構函式原型物件之後建立的物件
var p2 = new person()
p2 instanceof person // true
object.getprototypeof()可以獲取物件的原型。這種方法也存在這樣的問題:如果修改了建構函式的原型物件,之前建立的物件無法通過這種方式來確定型別
function person()
var p1 = new person()
object.getprototypeof(p1) === person.prototype // true
object.getprototypeof(p1) === object.prototype // false
person.prototype =
// p1是修改建構函式原型物件之前建立的物件
// p1的__proto__仍然指向原來的原型物件
object.getprototypeof(p1) === person.prototype // false
// p2是修改建構函式原型物件之後建立的物件
var p2 = new person()
object.getprototypeof(p2) === person.prototype // true
isprototypeof()
方法可以判斷乙個物件是否存在於另乙個物件的原型鏈上。這種方法也存在這樣的問題:如果修改了建構函式的原型物件,之前建立的物件無法通過這種方式來確定型別
function person()
var p1 = new person()
person.prototype.isprototypeof(p1) // true
object.prototype.isprototypeof(p1) //true
person.prototype =
person.prototype.isprototypeof(p1) // false
object.prototype.isprototypeof(p1) //true
var p2 = new person()
person.prototype.isprototypeof(p2) // true
object.prototype.isprototypeof(p2) //true
instance instanceof object //true
instance instanceof supertype // true
instance instanceof subtype //true
object.prototype.isprototypeof(instance) // true
supertype.prototype.isprototypeof(instance) // true
subtype.prototype.isprototypeof(instance) // true
物件導向 03
類屬性和例項屬性的概念 類屬性是給類物件 類是乙個特殊的物件 中定義的屬性,通常用來記錄與這個類相關的特徵,類屬性不會用於記錄具體物件的特徵。類屬性的定義是在初始化方法之外的 例項物件的屬性叫做例項屬性,在初始化方法內部定義 類屬性和例項屬性的訪問 類屬性的訪問是類名.類屬性 例項屬性的訪問是例項物...
物件導向03
將資料 屬性 和行為 方法 包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法 在類物件的內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件外部直接訪問,而是在類物件內部對外提供公開的介面方法以訪問隱藏的資訊。介面class student object def init sel...
物件導向03
1.static 靜態的 靜態不能直接呼叫非靜態,非靜態可以呼叫靜態 1 靜態變數 物件共有的屬性可以定義為靜態 1.1 由static修飾 1.2 屬於類的,存在方法區中,只有乙份,隨著類載入而使用 1.3 常常通過類名.來訪問 1.4 何時用 所有物件的資料一樣時使用 2 靜態方法 2.1 由s...