ES5-13 對象屬性遍歷、this、callee、caller

鏈式調用

  • 在每個函數內部return this
    在這里插入圖片描述

訪問對象屬性

  1. 點語法
  2. []中括號內是字符串或是變量

數組是特殊的對象

對象屬性遍歷

  • for in(遍歷對象或數組) - 不必再用Object.keys那么麻煩了
for(var key in obj){console.log(obj[key])// obj.key返回undefined// 因為js引擎會轉換為obj['key']
}
  • instanceof
console.log([] instanceof Array) // true
console.log([] instanceof Object) // true
console.log({} instanceof Object) // true
  • 類型判斷
var a = [] || {}
console.log(a.constructor)
console.log(a instanceof Array)
console.log(Object.prototype.toString.call(a))
// 實際運用時先緩存 var strFn = Object.prototype.toString// Object.prototype = {
//	toString:function(){
//		this.toString() // this → a
//	}
// }

在這里插入圖片描述
在這里插入圖片描述

函數內部的this

  • 只要沒有實例化構造函數,函數內部的this指向window
  • 全局范圍的this指向window
  • 構造函數內this指向
    在這里插入圖片描述

arguments.callee - 正在被執行的函數對象

function test(a, b, c, d) {console.log(arguments.callee.length)
}
test() // 4
  • 應用,在自啟動函數中使用遞歸,且不需要函數名
var res = (function (n) {if (n <= 1) {return 1}return n = n + arguments.callee(n - 1)
})(10);
console.log(res) // 55

caller - 當前函數的調用者

  • 嚴格模式下,使用arguments、callee、caller會報錯
dad()
function dad() {child()
}
function child() {console.log('child的調用者', child.caller)
}

在這里插入圖片描述

練習

在這里插入圖片描述

  • typeof的返回值有幾種:6種
  • 如何不用isNaN判斷NaN(轉換成字符串)
    在這里插入圖片描述
    在這里插入圖片描述
  • 引用值對比的是地址(這個是比較,不是隱式類型轉換
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
  • 函數test的AO有a
    在這里插入圖片描述

apply、call傳null,this指向是什么

function Test(name) {this.name = name
}
function Test2() {Test.call(null, '測試')
}
console.log('obj', new Test2())

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251169.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251169.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251169.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法 --- 順序查找、二分查找的js實現

順序查找: function seqSearch(arr, data) {for(let i 0; i< arr.length;i) {if(data arr[i]) {return i;}}return -1 } var arr[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]; console.log(seqSearch(arr, 15))二分查找: function binSearch(arr, data) {let low 0;let…

字符串連接(貪心)

輸入n個字符串s[i]&#xff0c;你要把他們按某個順序連接起來&#xff0c;使得字典序最小。 (1 < n < 100) (每個字符串長度 < 100) (字符串只包含小寫字母) Input 第一行一個整數n。 接下來每行一個字符串s[i]。 Output 一行一個字符串表示把輸入的n個字符串按某個順…

hibernate課程 初探單表映射3-1 hibernate單表操作簡介

本章簡介&#xff1a; 1    單一主鍵 2    基本類型 3    對象類型 4    組件屬性 5    單表操作CRUD實例轉載于:https://www.cnblogs.com/1446358788-qq/p/8232078.html

vue --- cdn導入,一些基本操作

使用cdn導入vue.并使用vue做一些簡單的操作. cdn導入vue: <script src"https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>vue-router的CDN導入: <script src"https://unpkg.com/vue-router2.5.3/dist/vue-router.js"></scrip…

SpringBoot 2.0 pom.xml 配置(熱啟動)

<?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://m…

ES5-14 【utils】三目運算符、對象克隆、淺拷貝、深拷貝

淺拷貝 for-in&#xff08;遍歷一個實例對象&#xff0c;原型上的屬性也會打印&#xff09; Object.prototype.num 1 function shallowClone(origin, target) {for (var key in origin) {target[key] origin[key]} } var p1 {name: 人類,daughter: {first: Jessica,} } va…

java代理的原理及應用

什么是代理模式&#xff1f; 定義 為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下&#xff0c;一個對象不適合或者不能直接引用另一個對象&#xff0c;而代理對象可以在客戶端和目標對象之間起到中介的作用。 ——百度百科 代理模式的角色 抽象角色&#xff1a;代…

vue --- 過濾器、計算、方法、觀察屬性

過濾器屬性:filters: <div id "app">{{num}}<br>{{num | toInt}}<br>{{num | toFloor}}<br>{{num | toCeil}}<br> </div> <script>let vm new Vue({el: #app,data:{num:3.45,},// 過濾器filters:{toInt(value){return …

《你不知道的JavaScript(上卷)》讀書筆記

第一次嘗試用思維導圖記筆記&#xff0c;感覺還不錯~~~不過還是改不了我讀書筆記寫成抄書筆記的毛病 。 因為開始學JS的時候&#xff0c;一般瀏覽器就已經支持ES6了&#xff0c;所以比較喜歡使用ES6語法&#xff0c;let&#xff0c;>等&#xff0c;文中代碼不是抄書的&#…

ES5-15 數組基礎、數組方法、數組排序

創建數組 字面量 var arr []構造函數 var arr new Array()不使用new var arr Array() 所有數組都繼承于Array.prototype&#xff0c;能使用其中的數組方法 數組是另一種形式的對象&#xff0c;訪問機制相同數組的empty項打印出來是undefined&#xff0c;empty不是值只是一個…

Centos 7 配置 NFS

安裝NFS包 yum install nfs-utils.x86_64 啟動NFS服務需要首先啟動rpcbind服務&#xff0c;這個rpcbind包已經在上面安裝好了 先配置 /etc/exports 文件 vi /etc/exports /etc/exports文件內容格式&#xff1a; <輸出目錄> [客戶端1 選項&#xff08;訪問權限,用戶映射,其…

數學期望筆記

基礎知識點 首先明確期望公式:\[E(X)∑_ip_i*x_i\] 其中 \(p\) 代表概率 , \(x\) 代表發生貢獻。 然后期望的幾點性質: 對于數學期望&#xff0c;我們還應該明確一些知識點&#xff1a; (1) 期望的“線性”性質 對于所有滿足條件的離散型的隨機變量\(X,Y\)和常量\(a,b\)有: \[E…

vue --- vue中的幾個鉤子屬性

1.創建前:beforeCreate <div id"app">{{name}}</div><script>let app new Vue({el:#app,data:{name:31231312},beforeCreate(){console.log(掛在前);console.log(this.$data);console.log(this.$el);}})</script>// beforeCreate()是在Vue掛…

ES5-16【utils】數組方法、類數組

數組方法 concat 返回值是拼接后的數組 toString 將數組轉成字符串&#xff0c;用逗號隔開 slice(a&#xff0c;b) [a&#xff0c;b) 不傳值&#xff0c;拷貝了一份不傳b&#xff0c;截取到最后一位傳b&#xff0c;截取到b之前的那位a/b是負數&#xff08;和splice一樣&a…

Catalan卡塔蘭數

卡塔蘭數 卡塔蘭數是組合數學中一個常出現在各種計數問題中出現的數列。由以比利時的數學家歐仁查理卡塔蘭 (1814–1894)命名。 卡塔蘭數的一般項公式為 另類遞歸式&#xff1a; h(n)((4*n-2)/(n1))*h(n-1); 前幾項為: 1, 1, 2, 5, 14, 42, 132, 429, …

vue --- v-html、v-bind

v-html // 有時候,我們需要展示<strong>,但直接使用下面的語法并不會顯示 <div id "app">{{name}}</div><script>let app new Vue({el:#app,data:{name:<strong>啦啦啦</strong>}}); </scritp> // 結果當然沒讓人失望此…

在樹莓派是安裝并配置NTP服務

我們都知道樹莓派的小巧和省電節省空間等太多的優勢&#xff0c;這里就不一一列舉了&#xff0c;那么樹莓派就需要長時間的運行&#xff0c;可以724的方式運行&#xff0c;那么我們就把樹莓派當作一個小的服務器來運行&#xff0c;可以跑一些小的應用&#xff0c;例如可以在局域…

Oracle使用總結

1. 在ORACLE中Service Name即為數據庫名稱&#xff1b; 2. 在做刪除操作時&#xff0c;需要加Commit進行操作提交&#xff1b; 3. 使用sqlldr將數據進行批量導入到ORACLE中&#xff1a; 3.1 Sqlldr命令的用法&#xff1a; sqlldr useridLoginName/PasswordTNSName controlC:\U…

ES5-17/18 錯誤信息、try_catch、嚴格模式

錯誤信息 語法錯誤 標識符名稱&#xff08;變量、函數名&#xff09;不規范對關鍵字賦值基本語法錯誤&#xff0c;如分號打錯 引用錯誤 變量、函數未聲明給無法賦值的對象賦值var a 1 2 范圍錯誤 數組長度為負數方法參數超出可行范圍toFixed(-1) 類型錯誤 調用不存在…

vue --- v-text、v-show、v-if、v-else

v-text: <div id "app"><p v-text"msg"></p> </div> <script>let app new Vue({el:#app,data:{msg:Hello Vue}}) </script>// 可見v-text在某種程度上等價于 {{}}v-show: <div id "app"><div…