JS原型題集

2021-07-15 16:03:46 字數 885 閱讀 2761

1、題目如下:

var fun = function(){}

fun.prototype =

var a = new fun();

var b = new fun();

console.log(a.name, b.name);//peter peter

fun.prototype.name = 'jack';

console.log(a.name, b.name);//jack jack

fun.prototype = {};

fun.prototype.name = 'tom';

console.log(a.name, b.name);//jack jack

b.constructor.prototype.name = 'kitty';

console.log(a.name, b.name);//jack jack

若想要輸出tom該怎麼改,為什麼不能輸出kitty?

答案:

(1)、fun.prototype ={}是重寫原型,重寫後跟重寫前就已經例項化的物件沒有關係的,所以tom自然不生效。若要輸出tom,新增以下**

a.__proto__.name=tom,無法通過fun來實現,因為原型鏈已斷

(2)、 不能輸出kitty是因為b.contructor!=fun,在剛開始的時候fun的原型就被重寫了。可以改為

fun.prototype=

}window.i=2;

a()()

解釋:看下圖閉包的作用域鏈

JS變數提公升題集

1 console.log a var a 12 function fn fn console.log a 輸出的三次分別是多少 a undefined 12 13 b undefined undefined 12 c undefined undefined 13 d 有程式報錯 2 console...

JS 物件 JS原型 原型鏈

參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...

js 原型與原型鏈

5條原型規則 1.所有的引用型別 陣列 物件 函式 都具有物件特性,即可自由擴充套件屬性 除了 null 除外 2.所有的引用型別 陣列 物件 函式 都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件。3.所有的函式,都有乙個prototype 顯式原型 屬性,屬性值也是乙個普通的物件。4...