js中创建对象是,工厂方式与构造函数方式中this的区别
2015-01-28 15:01
471 查看
上代码:
name="www";
function createClass()
{
alert(this == window);
this.name="ad";
return this;
}
var o=createClass();
alert("----o----"+o.name);
//执行结果:
var obj=new createClass();//此时,createClass函数作为构造函数,this指向obj对象(新创建的对象);
alert("----obj----"+obj.name);
//执行结果:
可以看出,使用工厂方式创建对象(返回this)时,this指向全局对象window,即此时返回的是对window对象的一个引用,其实并未创建任何对象;而通过构造函数new出一个对象的过程中,创建了一个新对象,此时,构造函数中的this指向新创建的对象。
---------第一写博客,可能错误百出,请盆友们多多指教。
name="www";
function createClass()
{
alert(this == window);
this.name="ad";
return this;
}
var o=createClass();
alert("----o----"+o.name);
//执行结果:
var obj=new createClass();//此时,createClass函数作为构造函数,this指向obj对象(新创建的对象);
alert("----obj----"+obj.name);
//执行结果:
可以看出,使用工厂方式创建对象(返回this)时,this指向全局对象window,即此时返回的是对window对象的一个引用,其实并未创建任何对象;而通过构造函数new出一个对象的过程中,创建了一个新对象,此时,构造函数中的this指向新创建的对象。
---------第一写博客,可能错误百出,请盆友们多多指教。
相关文章推荐
- js中创建对象时,工厂方式与构造函数方式中this的区别
- js使用工厂和构造函数方式创建对象
- js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
- JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型
- js 创建对象的三种方式——工厂模式、构造函数模式、原型模式
- JS中定义对象方式三: 使用构造函数方式创建对象
- JS中定义对象方式二: 使用工厂方式创建对象(传递参数,及其改进方法)
- js 中创建对象 构造函数 this
- 尚学堂js面向对象开发 (五)两种创建对象的方式(工厂方式,构造方法)
- JS中工厂方法和构造函数创建的对象的关系
- javascript基础(this,工厂方法来创建对象,构造函数创建对象)(十六)
- JS高级 - 面向对象1(this,Object ,工厂方式,new )
- js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
- JS中定义对象方式二: 使用工厂方式创建对象(无参数传递)
- JS面向对象的几种创建方式:工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
- JS创建对象的方式
- JS创建对象的7中方式
- js中组合使用构造函数模式和原型模式创建对象
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第30讲_类和对象细节_创建对象的几种方式_js对象内存分析_学习笔记_源代码图解_PPT文档整理
- JS中用new 创建对象及在构造函数中return的使用