国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Backbon,e.js的一些使用技巧

2019-11-02 14:32:43
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了Backbone.js的一些使用技巧,Backbone.js是一款人氣JavaScript庫,需要的朋友可以參考下

  自從3年前Backbone.js發布第一版以來,Backbone.js就成為一個流行的開源JavaScript “MV*”框架,并獲得人們的青睞。盡管Backbone.js給JavaScript應用提供了框架,但是它仍然給開發者留有很多設計模式供選擇,不管怎樣,當開發者第一次使用Backbone.js時還會產生很多普遍的問題的。

  因此,在這篇文章中,我們將介紹很多不同的設計模式供你在Backbone.js應用中使用,而且我們也會一同來看看對于開發者來說會產生很多普遍的有關性能伸縮的問題。

  對象深度拷貝

  JavaScript對待所有原生類型變量是傳值。所以,當變量被引用時就傳遞了變量的值。

  ?

1 2 var helloWorld = “Hello World”; var helloWorldCopy = helloWorld;

  舉個例子,上面的代碼將變量helloWorldCopy的值設置為變量helloWorld的值。這樣, 自從它的值被復制之后,所有修改helloWorldCopy的值不會修改helloWorld的值。JavaScript對待所有非原始類型的變量時傳引用,這就意味著當變量傳遞的時候將會傳遞內存地址引用。

  ?

1 2 3 4 var helloWorld = { ‘hello': ‘world' } var helloWorldCopy = helloWorld;

  舉個例子,上面的代碼將設置helloWorldCopy為helloWorld的引用,而且,也許你會猜到任何修改helooWorldCopy的值都會直接導致helloWorld值的變化。如果你想要helloWorld的拷貝,你可以創建一個拷貝對象即可。

  也許你會想到“為什么Backbone.js可以解釋為所有的工作都是通過傳遞引用?”事實上,Backbone.js不會拷貝對象,這將意味著如果你從模型里調用.get()方法獲得一個對象,任何給這個對象的修改都會直接修改原來的對象。讓我們一起來看一個例子來闡明哪里會發生這樣的情況。如果你有個如下的Person模型:

  ?

1 2 3 4 5 6 7 8 9 10 11 var Person = Backbone.Model.extend({ defaults: { 'name': 'John Doe', 'address': { 'street': '1st Street' 'city': 'Austin', 'state': 'TX' 'zipCode': 78701 } } });

  這樣你就創建了一個新的person對象:

  ?

1 2 3 var person = new Person({ 'name': 'Phillip W' });

  現在我們來對新對象的一些屬性進行操作操作:

  person.set('name', 'Phillip W.', { validate: true });

  上面的代碼成功的給person對象的name屬性賦了值。現在我們在來操作person對象的地址屬性。當然,在我們這樣做之前先驗證一下地址屬性。

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var Person = Backbone.Model.extend({ validate: function(attributes) {   if(isNaN(attributes.address.zipCode)) return "Address ZIP code must be a number!"; },   defaults: { 'name': 'John Doe', 'address': { 'street': '1st Street' 'city': 'Austin', 'state': 'TX' 'zipCode': 78701 } } });
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通城县| 武陟县| 镇沅| 灵丘县| 正镶白旗| 渑池县| 华蓥市| 普兰店市| 榆中县| 黔西县| 张家界市| 义马市| 沧源| 察隅县| 巨野县| 阜宁县| 格尔木市| 临桂县| 阳城县| 桐庐县| 城口县| 滦南县| 开化县| 岑溪市| 河池市| 新化县| 万山特区| 石家庄市| 博客| 吴旗县| 岑巩县| 荣昌县| 盖州市| 乐业县| 二手房| 鄂伦春自治旗| 崇义县| 衡山县| 长武县| 蒙阴县| 涞源县|