js筆記三十五之原型鏈模式擴充套件(2)
在原型模式中,this常用的有兩種情況:
在類中 this.xxx=xxx; this -> 當前類的例項
-
某一個方法中的this -> 看執行的時候
.
前面是誰this就是誰需要先確定this的指向(this是誰);
把this替換成對應的程式碼
按照原型鏈查詢機制, 一步步的查詢結果
function Fn(){ this.x = 100; this.y = 200; } Fn.prototype = { constructor: Fn, y: 300, getX: function(){ console.log(this.x) }, getY: function(){ console.log(this.y) } }var f = new Fn; f.getX() // -> 100 => console.log(f.x) => 100f.__proto__.getX() // -> undefined => this是f.__proto__ => console.log(f.__proto__.x)[忽略私有,直接找原型] => undefinedFn.prototype.getX(); // -> undefinedf.getY(); // -> 200f.__proto__getY() // -> 300
// 在內建類的原型上擴充套件陣列去重方法Array.prototype.myUnique = function(){ // this -> var obj = {}; for(var i=0;ithis -> Array.prototype
鏈式寫法: 執行完成陣列的一個方法可以緊接著執行下一個方法
ary為什麼可以使用sort方法? -> 因為sort是Array.prototype上的公有的方法,而陣列ary是Array這個類的一個例項,所以ary可以使用sort方法 -> 陣列才能使用Array原型上定義的屬性和方法
sort執行完成的返回值是一個排序後的陣列,可以繼續執行reverse
reverse執行完成的返回值是一個陣列,可以繼續執行pop
pop執行完成的返回值是一個被刪除的那個元素
ary.sort(function(a,b){ return a-b; }).reverse().pop();
思考練習:
在陣列的原則上有一個方法叫做slice, 自己實現一個方法mySlice, 要求和原來的slice功能一模一樣
Array.prototype.mySlice = function(){ // js code...}
考慮情況:
slice(n,m)
slice(n)
slice()
n和m是負數
nn和m的值超過陣列的長度
n和m不是有效數字
...
作者:uplyw
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2894/viewspace-2814070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js筆記三十四之原型鏈模式擴充套件(1)JS筆記原型模式套件
- JavaScript擴充套件原型鏈淺析JavaScript套件原型
- 前端筆記——JS基礎(原型&&原型鏈)前端筆記JS原型
- 可擴充套件性筆記一套件筆記
- 第200天:js---常用string原型擴充套件JS原型套件
- 學習筆記----擴充套件歐幾里德筆記套件
- mac安裝PHP擴充套件之pcntl遇坑筆記MacPHP套件筆記
- Json擴充套件方法JSON套件
- C#學習筆記(補充)——擴充套件方法、事件C#筆記套件事件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- 擴充套件包 Laravel-compass 使用筆記套件Laravel筆記
- swift學習筆記4——擴充套件、協議Swift筆記套件協議
- Swift學習筆記(二十六)——擴充套件Swift筆記套件
- 面試之JS篇 - 原型與原型鏈面試JS原型
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- [外掛擴充套件]馬克筆記MarkDoc0.1套件筆記
- 擴充套件中國剩餘定理(EXCRT)學習筆記套件筆記
- .Net開發筆記(十七) 應用程式擴充套件筆記套件
- 技術筆記(10)Unity編輯器擴充套件筆記Unity套件
- Openstack的nova-network的vlan模式擴充套件2模式套件
- php 擴充套件安裝(隨筆)PHP套件
- MySQL - 擴充套件性 2 擴充套件策略:氪金氪腦任君選MySql套件
- JS基礎總結(2)——原型與原型鏈JS原型
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- 安裝 SSH2 擴充套件套件
- Spring擴充套件介面(2):BeanDefinitionRegistryPostProcessorSpring套件Bean
- 【Unity】2DSprite的擴充套件Unity套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- PHP擴充套件開發教程2 – 編寫第一個擴充套件 hello worldPHP套件
- 《JavaScript 闖關記》之原型及原型鏈JavaScript原型
- 深入學習js之——原型和原型鏈#1JS原型
- ES6語法學習筆記之陣列與擴充套件運算子筆記陣列套件
- Dubbo系列之 (一)SPI擴充套件套件
- DOM擴充套件之HTML5套件HTML
- PHP 操作 Redis 之 phpredis 擴充套件PHPRedis套件
- ES6之字串擴充套件字串套件
- 【記錄】安裝 maxminddb 擴充套件套件
- [記錄] 安裝 maxminddb 擴充套件套件