- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
可能是 JavaScript 中理解最少的部分,位于原型(prototype)链旁边。
所以问题是:如何...
new dataObj(args);
...实际创建一个对象,并定义其原型(prototype)链/构造函数/等?
最好是展示一个替代方案,以充分理解这个关键字。
câu trả lời hay nhất
mới
运算符使用内部 [[Construct]]
方法,它基本上执行以下操作:
[[Prototype]]
,指向Function prototype
属性。
prototype
属性不是对象(原始值,例如 Number、String、Boolean、Undefined 或 Null),则使用 Object.prototype
相反。cái này
giá trị.mới
运算符的等效实现可以这样表示(假设 ECMAScript 5 Object.create
方法可用):
function NEW(f) {
var obj, ret, proto;
// Check if `f.prototype` is an object, not a primitive
proto = Object(f.prototype) === f.prototype ? f.prototype : Object.prototype;
// Create an object that inherits from `proto`
obj = Object.create(proto);
// Apply the function setting `obj` as the `this` value
ret = f.apply(obj, Array.prototype.slice.call(arguments, 1));
if (Object(ret) === ret) { // the result is an object?
return ret;
}
trả về đối tượng;
}
// Example usage:
function Foo (arg) {
this.prop = arg;
}
Foo.prototype.inherited = 'baz';
var obj = NEW(Foo, 'bar');
obj.prop; // 'bar'
obj.inherited; // 'baz'
obj instanceof Foo // true
关于javascript - new 运算符在 JavaScript 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750880/
Tôi có một biểu mẫu ở định dạng html: Tôi cần lấy JavaScript để thực thi trong trường nhập giá trị, nhưng chỉ thông qua việc gửi biểu mẫu. Lý do là trang này là mẫu nên tôi không thể kiểm soát nó (không thể có).
Diễn đàn tôi quản lý được lưu trữ bằng phần mềm nên tôi không có quyền truy cập vào mã nguồn, tôi chỉ có thể thêm JavaScript vào trang để thực hiện những gì tôi cần thực hiện. Tôi đang cố gắng thay thế phiên bản đầu tiên của một số từ khóa văn bản nhất định trên tất cả các trang bằng siêu liên kết. Tôi cũng đã ánh xạ những thứ này dựa trên mã quốc gia
Tôi đang sử dụng JS để mở một trang mới và viết mã HTML vào đó, nhưng khi tôi cố gắng sử dụng document.write() để viết JS trên trang mới thì chức năng không hoạt động. Rõ ràng, một khi đã nhìn thấy thì JS chính sẽ bị đóng lại. cho sự sắp tới
Câu hỏi không được đặt ra để giải quyết vấn đề, câu hỏi được đặt ra để hiểu rõ hơn về các chuyên gia hệ thống! Tôi biết rằng bất cứ khi nào bạn đưa mã javascript vào công cụ javascript, nó sẽ được công cụ javascript thực thi ngay lập tức. Vì tôi chưa thấy Engi
Tôi có hai tệp javascript trong một thư mục. Tôi muốn chuyển một biến từ tệp javascript sang tệp khác. Tôi nên sử dụng chương trình nào? Câu trả lời hay nhất window.postMessage được sử dụng cho các tin nhắn nhiều tài liệu. làm
Tôi có một bài tập trong đó tôi cần lấy hai đầu vào và kiểm tra xem cả hai có bằng một hay không. Nếu console.log thông thường console.log sai thì tôi đã thử một cái gì đó như thế này: function isPositive(linh sam
Tôi đang tạo một ứng dụng web và dự định cho phép các trang web (khách hàng) khác nhúng đoạn javascript sau vào trang của họ: Ứng dụng web của tôi được đặt tại http://example.org. Tôi không thể cho rằng các trang của trang khách có JQue
Hiện tại tôi đang sử dụng ba tệp JS bên ngoài. Tôi thích kết hợp cả ba tệp JS thành một. Làm bất cứ điều gì cần thiết. Tôi tạo aio.js và trong aio.js src="https://code.jquery.com/
Ví dụ: tôi có một mảng như thế này: var myArray = []; var item1 = { start: '08:00', end: '09:30' } var item2 = {
Vì vậy, tôi đang tạo một tiện ích mở rộng của Chrome sử dụng một số tập lệnh TamperMonkey mà tôi đã tạo. Tôi muốn có tệp javascript "chính" nơi bạn có thể bao gồm và thực thi các tập lệnh khác. Tôi khá giỏi trong việc chuyển đổi các jav khác bằng dòng sau
Tôi có các tệp javascript A,B html và A,B. Và, làm cách nào để di chuyển trực tiếp các biến toàn cục được sử dụng trong JavaScript A sang JavaScript B? Ví dụ về JavaScript) và
Tôi cần đặt toàn bộ mã bên dưới vào JavaScript có tên activate.js. bạn có thể cho tôi biết làm thế nào để làm điều đó? var int = int mới({ giây: 30, đánh dấu
Tôi đã tạo trang chính EXAMPLE1.Master cho ứng dụng web .net của mình. Tôi lưu trữ giá trị trong một biến JavaScript. Tôi muốn truy xuất biến này trong một tệp JS khác. Ví dụ 1.Master: -
Có thư viện nào tôi có thể sử dụng để chuyển đổi mã như thế này không: function () { var a = 1; } thành mã như thế này: function () { var a = 1; Vì tôi ở Gi
Tôi gặp lỗi cú pháp $(document).ready(function ChangeText() { var p = document.getElementById('bidp
Tôi đang tạo một thanh tiến trình. Nó có một nhãn hiệu. Tôi muốn điều chỉnh nhãn được hoàn thành bởi một tập lệnh nhất định. Sau khi tìm thấy một số câu trả lời về các giải pháp khả thi, tôi đã nghĩ ra đoạn script sau. Cái đầu tiên khởi động và hoạt động như mong đợi. Tuy nhiên, cái thứ hai thì không. Có chuyện gì vậy? Mã này như sau: HTML:
Đây là một câu hỏi rất đơn giản mà đầu óc đơn giản của tôi không thể trả lời: tại sao các hàm ẩn danh và hàm tải bên dưới không chạy khi tôi tải chúng vào thư viện bên ngoài? Tôi đang thiếu một cái gì đó rất, rất cơ bản. Library.js chỉ có một dòng: console.log(
Tôi biết javascript là ngôn ngữ phía máy khách, nhưng nếu mã javascript được nhúng trong mã thực tế khác với mã đang chạy trên bảng điều khiển, tôi sẽ thử tìm hiểu. Hãy để tôi giải thích nó bằng một ví dụ: Tôi muốn tạo một chiếc Mi
Làm cách nào để thay đổi javascript nội tuyến này thành JavaScript không phô trương? Cảm ơn! Cảm ơn câu trả lời, nhưng nó không hoạt động. Mã của tôi là: Tệp PHP js document.getElem
Tôi đang tìm cách thanh lịch nhất để "đổ" một đối tượng JavaScript đơn giản vào mã nguồn JavaScript được tạo động. Mục đích: Giả sử chúng ta có máy chủ node.js tạo HTML. Chúng tôi có một đối tượng x ở phía máy chủ.
Tôi là một lập trình viên xuất sắc, rất giỏi!