New

创建一个新对象

  • this指向这个新对象
  • 执行代码,即对this赋值
  • 返回this ?

  • new运算符使用

  1. function Foo(name,age){
  2. this.name = name ;
  3. this.age = age ;
  4. //return this //默认有这一行
  5. }
  6. var f = new Foo('zhangsan',20);
  7. //var f1 = new Foo('list',22) //创建多个对象
  • 自制new运算符
  1. var new2 = function (func) {
  2. var o = Object.create(func.prototype);
  3. var k = func.call(o);
  4. if (typeof k === 'object') {
  5. return k
  6. }else{
  7. return o
  8. }
  9. }
  10. function new_todo() {
  11. this.name = 'zhang';
  12. }
  13. var o6 =new2(new_todo);
  14. console.log(o6)