Javascript 以函数风格创建对象

标签 javascript oop

#1 (object) 
function Person(f){
      this.firstname = f;

      alert(this.firstname);
    }
    var me = new Person('benny');


#2 (function) 
    function Person(f){
       alert(f);
    }
    Person('benny');

我是 js oop 新手,我了解 PHP 中的 oop

我的问题是第一个和第二个有什么不同?

在 php 中,如果我创建一个 obj,我将从 class{}

开始

在 JS 中,似乎你也可以创建一个 obj var obj = {} 或者像创建一个函数一样创建它?

有人能解释一下它是如何工作的吗?

最佳答案

第一个是构造函数,第二个只是一个大写字母的普通函数。

构造函数是创建数据类型的一种方法。 JavaScript 提供原型(prototype)继承。

Person.prototype.newmethod = function(){...};

新的 JavaScript 版本中有一个 class 关键字。 您也可以使用 TypeScript。这对你来说可能更有意义。

关于Javascript 以函数风格创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414577/

相关文章:

c# - 不可变对象(immutable对象)列表使用的设计模式

python - 创建对象属性的引用列表

Javascript - 如何根据深度嵌套的数字对嵌套对象中的值进行排序?

Javascript 和 HTML5 Geolocation - 如何存储位置?

javascript - 当触发特定 POST 请求时修改 HTTP POST 请求正文(post 参数)

python - 设计异常继承的标准方法是什么?

javascript - 在 javascript 中添加到 String 原型(prototype)的性能成本

javascript - IndexOf 不能在 ie 中使用 date tolocalestring,但 ie 支持它

algorithm - 选择产品以获得最大的购物车值(value)

java - 不使用 `return` 将值传递给调用者