如何在 JavaScript 中创建实例变量
How to create instance variables in JavaScript?
我的理解是,原型链上的东西每个对象只创建一次,要创建实例变量,必须使用this
。 这是对的吗?
例如:
function Foo () {
this.some_instance = "hello";
}
Foo.prototype.some_static = "hi";
实现
var foo1 = new Foo();
var foo2 = new Foo();
创建 foo1 和 foo2 将创建两个 hello 值,但只创建 hi 中的一个值。
这是对的吗?
简短的回答:是的。
证明:
function Foo () {
this.some_instance = "hello";
}
var foo1 = new Foo();
Foo.prototype.some_static = "hi"; // in between
var foo2 = new Foo();
foo1.some_static === foo2.some_static; // return true
好吧,制作 foo1 和 foo2 不会创建任何"hi"值。值为"hi"的"some_static"变量在创建 foo1 和 foo2 之前已在 Foo 原型对象中创建。
当您创建使用 Foo 原型的对象并引用它们的"some_static"属性时,它将首先查找对象本身。如果对象没有"some_static"属性,它将在其原型对象中查找它。
但是,是的,如果要创建对使用相同原型的每个对象唯一的属性,则应将其设置在对象本身而不是原型上。您可以通过从对象的一个方法内部设置"this.some_instance"或从外部设置"foo1.some_instance"来做到这一点。
相关文章:
- 实例创建(JS)
- 如何在JavaScript中创建实例的实例
- 使用模型创建实例显示'不是函数'(节点使用猫鼬)
- Backbone.Model.extend不创建实例属性
- 在 ES6(量角器页面对象)中创建实例的正确方法
- 获取创建实例的父函数
- 如何显式创建实例变量
- 如何在 JavaScript 中创建实例变量
- 如何使用新构造函数为 json 中的每个节点创建实例
- 构造函数中的私有函数声明是否在每次创建实例时重新实例化
- 创建实例时覆盖的主干视图类事件
- 创建实例并传递给构造函数或在构造函数内部创建
- 在 javascript 中的类中为私有函数创建实例
- 创建实例,不带' new '操作符,参数列表可变
- Jquery -在document.ready()上创建实例后更改对象属性
- 在dojo的addOnLoad方法中创建实例没有全局作用域
- Ember js 1.12.0 -创建实例失败
- 命名textarea不要在form中创建实例
- 我们可以从jsonObject创建实例吗?
- 我应该创建实例的模块或不