我想了解Prototype函數和嵌套函數之間的區別。 我需要知道以下js jquery原型函數vs嵌套函數
- 哪個更好,性能明智
- 兩個
- 哪種結構更適合於哪些情況之間的主要區別(我假設雙方都不同的目的)是什麼?
我的基本用法: 我的基本用法是我想要寫一個Web應用程序AA主要功能啓動時,它會創建菜單,按鈕,按鈕點擊事件,繪製圖表,期間做桌子等應用程序導航,我需要我的代碼以更好更快的方式構建。我將使用jQuery和它的插件很多*。
有關使用方法簡單,考慮我需要在5月的應用程序很多地方/階段創建組件/構件容器,我只想叫var port = App.creatPortlet()
然後port.content(// place data)
請幫助。
性能: 我創建性能測試在這裏prototype-vs-nested-function,似乎函數原型更快。但我需要一些建議。
函數原型:
function Person(opt) {
this.firstName = opt.firstName;
this.lastName = opt.lastName;
}
Person.prototype.getFullName = function() {
return this.firstName + " " + this.lastName;
};
// Testing performance
var P1 = new Person({
firstName: 'Jeremy',
lastName: 'McPeak'
}).getFullName();
嵌套函數:
var Person = function(opt) {
return {
getFullName: function() {
return opt.firstName + " " + opt.lastName;
}
};
}
// Testing performance
var P1 = new Person({
firstName: 'Jeremy',
lastName: 'McPeak'
}).getFullName();
UPDATE: http://jsperf.com/closure-prototype-static-reveal 我根據我的確切需要創建benchamrk。
我修改了上面的測試。原型似乎更快。 – django
(1)。你能否基於這兩種情況的內存使用情況更新文章? (2)。我可以封裝原型的功能嗎?所以我保留人的模塊和它的變量私人?請舉例說明? – django
@django您不僅測試_prototype_ vs _nested functions_,還_assignment_ vs _scope creation_。這就是爲什麼你的測試不是很有用,另一個是測試的方式並不能反映真實情況。 Js引擎有許多優化/分析步驟。無論如何,大多數圖書館都使用'prototype'來處理其大部分庫。這是_performance_測試的一個更好的指標。 –