要掌握這三者之間的關係prototype,constructor,__proto__
通過**例子記錄一下
function f()
};var o = new f(); //這裡o就是this
通過**看一下
constructor,預設指向prototype物件所在的建構函式,必須從物件的原型鏈上去找也就是f.prototype上去找
對於__proto__,o物件得到了__proto__,這樣也就形成了物件之間的鏈結,構成了原型鏈,能通過原型鏈訪問繼承的屬性和方法;當然o還有自身屬性a
注意點:當我們自定義了f的原型
function f() {};
f.prototype = ;
//因為原型指向的改變,需要加上構造器的正確值
f.prototype.constructor = f;
var o = new f();
console.log(o.constructor);
繼承要實現的效果是:
function f()
function son()
var po = ;
f.prototype = po;
//第一種,是錯誤的
= f.prototype; //兩者是同輩分,之間不存在繼承,是兄弟
//第二種
son.prototype = object.create(f.prototype); .__proto__ = f.prototype 這個就是存在上下輩分,有繼承關係
//第三種
= new f(); 與第二種一樣,有繼承關係,但是這種會進行一次f建構函式的構建,消耗效能
所以我們採用son.prototype = object.create(f.prototype);
利用call加this機制完成子類對父類自身方法屬性的繼續
function f()
}function son()
var son = new son();
console.log(son.fn())
整合一下
function f()
function son()
f.prototype.fn = function () {};
var inherit = (function ();
// f.prototype = origin.prototype;
// new f()
target.prototype.constructor = target;
}}());
inherit(son, f);
var son = new son();
console.log(object.getprototypeof(son));
javascript學習筆記三之js物件
計算字串的長度 如何使用長度屬性來計算字串的長度。為字串新增樣式 如何為字串新增樣式。indexof 方法 如何使用 indexof 來定位字串中某乙個指定的字元首次出現的位置。match 方法 如何使用 match 來查詢字串中特定的字元,並且如果找到的話,則返回這個字元。如何替換字串中的字元 r...
JavaScript基礎之標準物件
為了區分物件的型別,我們用typeof操作符獲取物件的型別,它總是返回乙個字串.總結一下有這麼幾條規則需要遵守 1.不要使用new number new boolean new string 建立包裝物件 2.用parseint 或者parsefloat 來轉換任意型別到number 3.用stri...
JavaScript內建物件之Array 一
array新方法 一.位置方法 1.indexof 作用 返回某元素在陣列中的第乙個出現位置。引數 第乙個為需要查詢的元素。第二個為查詢的起始位置 可選,預設為0 返回值 返回元素在陣列的位置,未找到返回 1.2.lastindxof 作用 返回某元素在陣列中的位置 反向查詢 引數 第乙個為需要查詢...