javascript - 构造函数返回值不是 "[Object object]"

标签 javascript constructor

当我使用 String 构造函数时,我总是想知道它是如何制作的。它返回您指定为参数的字符串,即使它是使用“new”运算符实例化的,例如:

  var str = new String("Hello World")
  //str == "Hello World"

如果我创建一个构造函数并给它一个返回值,它在实例化时会返回一个对象:

  function CreateString(st) {
  return ''+st 
  }
  var MyString = new CreateString("Hello there!")
  //MyString == "[Object object]"

如何创建一个返回 [Object object] 以外的值的构造函数?

更新: 我正在尝试创建一个具有属性和值本身的构造函数,例如:

   function MyConstructor() {
    this.myMethod = function() {
     return 73
    }
     return 25
   }
    /*I want MyConstructor to have the value 25 and the myMethod method */
   alert(MyConstructor()) // to be 25
   alert(MyConstructor().myMethod()) //to be 73

最佳答案

您可以替换所需类中的toString()函数定义。

function CreateString() {
  function toString() { return 'foo' }
}

示例:Number.prototype.toString()

关于javascript - 构造函数返回值不是 "[Object object]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41808464/

相关文章:

javascript - Zapier - Catch Hook - JSON 数组 - 遍历数组中的每个项目

javascript - 获取 Vue 组件计算实例的总数

scala - 如何获得与给定实例相同类型的空集合?

c++ - 继承构造函数

c++ - C++ 中的默认结构初始化

javascript - 上下移动行后如何在数据表中保留复选框 "checked"

javascript - 如何使用angular js列出文件夹中的所有文件名

java - 链表 : What to substitute for node on the last node?

C++ 类模板构造函数继承与指针

JavaScript:正确的 switch-case 语句