Nov*_*tor 8 javascript oop class
我是javascript中的新对象.请阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript上的这个主题,并对此感到困惑.
我不明白功能和对象之间的区别.一方面,函数应该是Function的实例(它是Object的子元素),因此函数也应该是一个Object.
另一方面,对象本身表示为键值对,例如:
var User = {name:"Tomy", password:"secret"}
这在功能定义方面与代码兼容性有很大不同......
我可以用两种不同的方式创建功能吗?
var User = function () {this.name="Tomy"; this.password="secret";}
在此示例中,User现在包含一个对象.
var User = {name:"Tomy", password:"secret"}
typeof User === "object"
User.name === "Tomy"
Run Code Online (Sandbox Code Playgroud)
在这个例子中,User将保存一个函数.此函数可用于创建对象.
var User = function () {this.name="Tomy"; this.password="secret";}
typeof User === "function"
User.name === undefined
Run Code Online (Sandbox Code Playgroud)
然后,您可以根据需要创建任意数量的用户.
var user1 = new User(), user2 = new User();
user1.name === "Tomy"
Run Code Online (Sandbox Code Playgroud)
一个更现实的例子是:
var User = function (name, pass) {this.name=name; this.password=pass;}
var john = new User("John", "secret")
var andrew = new User("Andrew", "passw0rd")
john.password === "secret"
Run Code Online (Sandbox Code Playgroud)
通常构造函数(创建对象的函数)比对象文字更灵活,并允许方便和一致地创建对象(错误更容易发现,更少重复的代码).
这两种方法中没有跨浏览器的不一致.
要了解new关键字的含义以及"创建时刻"有效发生的情况,请参阅JavaScript中的"新"关键字是什么?以及新运算符如何在JavaScript中运行?
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |