javascript 这两种写法的优缺点,各适用于哪种情况?
demo1
var demo = (function(){
var that ={}
that.register = function(ns,maker){
var step = that;
var NSlist = ns.split('.')
while(k = NSlist.shift()){
if(NSlist.length){
if(step[k]===undefined){
step[k] = {}
}
step = step[k]
}else{
if(step[k]===undefined){
try {
step[k] = maker()
} catch(exp) {}
}
}
}
}
return that
}())
demo.register('core.arr.inArray',function(){
return function(o){
return Object.prototype.toString.call(o)==='[object Array]'
}
})
var arr = [11,33,55]
console.log( demo.core.arr.inArray(arr))
demo2
;(function(){
var demo2 = function(){}
demo2.prototype={
isArray : function(o){
return Object.prototype.toString.call(o)==='[object Array]'
}
}
window.demo2 = demo2
}())
var arr2 =[22,66];
var user1 = new demo2();
console.log( user1.isArray(arr2))
demo3
var demo3 = {
isArray : function(o){
return Object.prototype.toString.call(o)==='[object Array]'
}
}
console.log(demo3.isArray(arr))
demo4
var demo4 = (function(){
return {
isArray : function(o){
return Object.prototype.toString.call(o)==='[object Array]'
}
}
}())
console.log( demo4.isArray(arr))
不知道这两种写法 哪种更优一点 哪种适用于什么情况
还请知道的 指导一下
JavaScript javascript面向对象 javascript性能
OHshit
9 years, 9 months ago