Skip to Content
JAVASCRIPT網頁應用程式設計
book

JAVASCRIPT網頁應用程式設計

by Alex MacCaw
January 2013
Intermediate to advanced
332 pages
5h 23m
Chinese
GoTop Information, Inc.
Content preview from JAVASCRIPT網頁應用程式設計
Spine 函式庫
|
177
執行環境(Context
JavaScript 程式裡,往往充斥著許多變換執行環境的狀況,因此
Spine.Class
提供了一
些可用於變換作用域(scope)的工具函式。讓我們先看一個錯誤的示範:
var Controller = Spine.Class.create({
init: function(){
// 新增事件監聽器
$("#destroy").click(this.destroy);
},
destroy: function(){
// 呼叫 destroy 函式時,執行環境已經被改變了
// 因此「this」的參照值會和我們所預期的不一致
// 下面這段判斷式會失敗:
assertEqual( this, Controller.fn );
}
});
拿前面這段程式碼來說,當我們觸發事件、呼叫
destroy()
函式時,
destroy()
函式裡
的執行環境已經變成
#destroy
,而不是我們想要的 Controller。如果要解決這個問題,
可以利用代理器函式,強行設定你想要的執行環境。Spine 所提供的
proxy()
函式,其
功用正是如此:
var Controller = Spine.Class.create({
init: function(){
$("#destroy").click(this.proxy(this.destroy));
},
destroy: function(){ }
});
不過當你發現老是需要用
proxy() ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

Ethan Brown, 武舎 広幸, 武舎 るみ
PHP编程:第4版

PHP编程:第4版

Kevin Tatroe, Peter MacIntyre
Strange Code

Strange Code

Ronald T. Kneusel
Perfecting Your Thinking Skills

Perfecting Your Thinking Skills

MIT Sloan Management Review

Publisher Resources

ISBN: 9789862766811