当使用相同的名字什么函数和变量
js在预解析时 函数提升的更高 console.log()时 输出的是变量的值
创建对象
1.通过函数function创建
var NameSpace = window.NameSpace || {}; /* Function */ NameSpace.Hello = function() { this.name = 'world'; }; NameSpace.Hello.prototype.sayHello = function(_name) { return 'Hello ' + (_name || this.name); }; var hello = new NameSpace.Hello(); hello.sayHello();
2.通过json对象创建object
/* Object */ var NameSpace = window.NameSpace || {}; NameSpace.Hello = { name: 'world' , sayHello: function(_name) { return 'Hello ' + (_name || this.name); } };
3.Object和闭包
var NameSpace = window.NameSpace || {}; NameSpace.Hello = (function() { var name = 'world'; var sayHello = function(_name) { return 'Hello ' + (_name || name); }; return { sayHello: sayHello }; }());
4.Function
var NameSpace = window.NameSpace || {}; NameSpace.Hello = new function() { var self = this; var name = 'world'; self.sayHello = function(_name) { return 'Hello ' + (_name || name); }; };