请教 两端js代码的区别
下面两端js代码执行效果是相同的,请问第1)代码的原理是什么?它们之间有什么区别?
1)
<script>
var func =function(){
return {
init : function(){
document.writeln("init");
}
}
}();
func.init();
</script>
2)
<script>
var func =new function(){
this.init = function(){
document.writeln("init");
}
}();
func.init();
</script>
------解决方案--------------------最终的结果没什么区别, 只是生成结果中间的步骤有点区别
我把步骤分解一下
第一个是一个函数, 函数的返回值是一个对象
function func() {
var obj = new Object;
obj.init = function() {document.writeln("init");}
return obj;
}
var obj = func();
obj.init();
-------------------------------------------------
第二个是一个类, 类实例化后就成了一个对象
function JsClass() {
this.init = function(){
document.writeln("init");
}
}
var jsObj = new JsClass();
jsObj.init();