function
supertype()
supertype.prototype.name =
'ali'
;//在supertype.prototype指向的物件上增加了name屬性
//在supertype.prototype指向的物件上增加了sayname方法
supertype.prototype.
sayname
=function()
; supertype.prototype.
setname
=function
(name)
;var instance1 =
newsupertype()
;var instance2 =
newsupertype()
; instance1.
sayname()
;//ali
instance2.
sayname()
;//ali
instance1.
setname
('lucy');
instance1.
sayname()
;//lucy
instance2.
sayname()
;//lucy
<
/script>
將setname方法更改為:
this
.name=name;
之後再進行呼叫結果就會不同
var instance1 =
newsupertype()
;var instance2 =
newsupertype()
;
instance1.
sayname()
;//ali
instance2.
sayname()
;//ali
instance1.
setname
('lucy');
instance1.
sayname()
;//lucy
//輸出的結果不再是luce
instance2.
sayname()
;//ali
那麼我們就要思考為什麼更改過後就不是lucy而是ali?this的指向???
不是指向原型物件,而是指向例項
function
animal()
animal.prototype.name =
'張三'
; animal.prototype.
sayhello
=function()
; animal.prototype.
setname
=function
(name)
;var dog =
newanimal()
;var cat =
newanimal()
; dog.
sayhello()
;//張三
cat.
sayhello()
;//張三
1. console.
log(animal.
hasownproperty
("name"))
;//true
dog.
setname
('damao');
2. console.
log(animal.
hasownproperty
("name"))
;//true
dog.
sayhello()
;// damao
cat.
sayhello()
;//張三
為什麼1和2 列印的都是true??按道理來說1中列印的應該是false的,後來發現animal中有自己的name屬性
function
animal()
animal.prototype.name1=
"張三"
;//給原型上新增name1 屬性
animal.prototype.
sayhello
=function()
;
animal.prototype.
setname
=function
(name)
;var dog=
newanimal()
;var cat=
newanimal()
; dog.
sayhello()
; cat.
sayhello()
;1.console.
log(dog.
hasownproperty
("name1"))
;//false
2.console.
log(cat.
hasownproperty
("name1"))
;//false
dog.
setname
("damao");
3.console.
log(dog.
hasownproperty
("name1"))
;//true
4.console.
log(cat.
hasownproperty
("name1"))
;//false
dog.
sayhello()
;//damao
cat.
sayhello()
;//張三
<
/script>
從1 2 3 4前後兩次的列印我們可以總結出this是指向例項的! 原型指向的改變
例項物件的原型 proto 和建構函式的原型prototype指向是相同的 例項物件中的 proto 原型指向的是建構函式中的原型prototype 原型鏈 是一種關係,例項物件和原型物件之間的關係,關係是通過原型 proto 來聯絡的 人的建構函式 function person age 人的原型...
this指向建構函式原型鏈改變指向關係變動
輸出下面幾個方法得到結果 function foo this.a function foo.prototype.a function foo.a function foo.a 4 let obj new foo obj.a 2 foo.a 1解析 1.宣告的乙個函式foo 2.函式foo原型鏈上掛載...
this的指向問題
對於js基礎不是很好的我,一直不太懂this的指向問題。要搞懂這個還是得多動手。首先,我們知道 1.函式被呼叫時可以確定該函式內this的指向。因為函式中的this和arguments時兩個特殊的變數,在函式被呼叫時才會取得他們,而搜尋著兩個變數時只會在活動變數中找。2.確定函式被呼叫的位置,從而確...