亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

with()和call(),apply()存在的意義是否一樣?(注意是存在的意義)

with()和call(),apply()存在的意義是否一樣?(注意是存在的意義)

呼啦一陣風 2019-05-22 18:17:05
在JavaScript中,with語句的作用是將代碼的作用域設置到一個特定的對象中。那么它存在的意義是否和call和apply一樣?如果一樣,在什么情況下分別使用哪一種呢?如果存在的意義不一樣,又不一樣在哪里呢?
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我覺得從意義上來講是一樣的。
with改變的上下文是定義的時候創建好的是作用域鏈
call,apply改變的上下文是this指向是執行的時候獲取是原型鏈
然后說說分別使用哪一種。當然是在你必須用的時候用了呀,不過我覺得不會存在這樣一個時候的。比如with改變的上下文,你創建一個function就可以改變自己的了。問題不大吧?;蛘哒f你重新命名幾個變量下面再去用,問題不大吧。無非就是用一個對象來替換了當前的上下文環境。
再說call,其實你也可以用一個function來把數據解析。也可以直接把這個方法放在新的對象上去跑。無所謂的,當然把this賦值給一個變量,然后用這個變量去訪問好像問題也不大啊。
不要為了用什么而去用,而是我需要什么。
                            
查看完整回答
反對 回復 2019-05-22
  • 2 回答
  • 0 關注
  • 422 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號