var a = ;
var b = cloneobj(a);
alert(b.name);
function
cloneobj
(obj) ;
f.prototype = obj;
return
new f();
}script>
首先我們還是通過原型鏈的方式來解釋
首先f1通過原型鏈找到f.prototype;
obj直接賦值給f.prototype;
name其實是在obj的下面;
直接return的就是f1;
f1和b是相同的;
所以b順著原型鏈找name
現在我們改一下b的name屬性
var a = ;
var b = cloneobj(a);
b.name = '小強';
alert(b.name); //小強
alert(a.name); //小明
function
cloneobj
(obj) ;
f.prototype = obj;
return
new f();
}script>
先在b自己下面找,如果找到了就不在沿著原型鏈找了 什麼是原型 原型物件 原型鏈?
每當宣告乙個函式的時候,系統都有乙個 prototype 原型 屬性,這個屬性是乙個指標,指向乙個物件,而這個物件的用途是包含可以由特定型別的所有例項共享的屬性和方法,稱為原型物件 在宣告了乙個函式後,這個建構函式 宣告了的函式 中會有乙個屬性prototype,這個屬性指向的就是這個建構函式 宣告...
原型 原型鏈 new做了什麼 繼承
比我們通過乙個建構函式new了乙個新物件,建構函式的原型prototype指向乙個物件,所有通過該建構函式new的新物件可以共享它所包含的屬性和方法。建構函式的原型prototype是乙個物件,那麼它也可以有自己的建構函式原型prototype,通過這樣,形成乙個原型鏈。原型鏈最終都可以上溯到obj...
什麼是原型和原型鏈
所有引用型別都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件 所有函式都有乙個prototype 原型 屬性,屬性值是乙個普通的物件 所有引用型別的 proto 屬性指向它建構函式的prototype var a 1,2,3 a.proto array.prototype true 當訪...