node面试留下的问题(待补充)

luoyjx · 2015-06-25 17:03 · 533次阅读

exports和module.exports什么时候该用哪个?什么时候只能用哪个?

先看定义吧,简洁明了,只看三句话:

  1. exports 是指向的 module.exports 的引用
  2. module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {}
  3. require() 返回的是 module.exports 而不是 exports

https://cnodejs.org/topic/5231a630101e574521e45ef8

试验(必须要,试过才会记住),容后补充。

js中的this

1.函数调用

function test(){ 
	this.x = 1; 
	console.log(this.x); 
} 
test(); // 1 

全局

var a = 1;
function test(){
	console.log(this.a);
}
test();

2.对象方法的调用

function fn(){
	console.log(this.x);
}

var a = {};
a.x = 1;
a.m = fn;
a.n():

3.作为构造函数调用

function A() {
	this.x = 1;
}

var a = new A();
console.log(a.x);

4.apply调用

var x = 0; 
function test(){ 
  console.log(this.x); 
} 
var o={}; 
o.x = 1; 
o.m = test; 
o.m.apply(); //0 

错误跟踪

不通过new创建对象

Object构造器方式

Object()
Object(1)
Object("1")

原型链方式

Object.create(prototype, descriptors):建立一个原型为(prototype)(必需,可为NULL),(descriptors)(可选)为ECMAScript对象的对象.

var a = Object.create({a:1,b:2}, {
            c: {
                value: "large",
                enumerable: true
            },
            d: {
                value: "round",
                enumerable: true
            }
        });

java对象和js对象的区别

java javascript
静态类型 动态类型
强类型 弱类型
类和实例是不同的实体 一切皆对象
泛型 不支持泛型
反射 不支持反射

暂无评论

登录后可以进行评论。没有账号?马上注册